由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 急!问个有关aligment的问题。
相关主题
C怪问题一个问个C++编译器如何处理函数内的static 变量
visual studio 编译器怎么关掉warning?inline function是否可以递归?
[合集] Intel 9编译器在vc 6.0的环境里编译openmp的问题有熟悉php的吗?问个文本处理
问一个gcc下bit field的对齐问题请问c++里empty class的问题
[合集] call-by-ref降低了C++程序可读性C编译器为何允许一个函数在某个路径不返回值?
C++函数里什么时候传入指针的引用和传入指针是不一样的?C++类的静态函数对成员函数
模板类中的一个类型问题?一个C++ 的问题
关于构造函数的一道测试题 (转载)问个简单的memory allocation 的问题。
相关话题的讨论汇总
话题: aligment话题: 对齐话题: mystr话题: 函数话题: api
进入Programming版参与讨论
1 (共1页)
b******a
发帖数: 215
1
嵌入式系统的CPU,对aligment要求很严。编译器是gcc。
函数要求传入一个(void *str)进去,然后函数里面会每2个byte读到一个local的变量
里面。
现在的问题是如果设一个变量如: char *mystr="this is my str"; 然后把mystr传入
函数,有时间mystr不是按照2或者4来对齐的,这样函数内部就会出错,导致系统崩溃。
因为一般情况下,char是没法对齐的。请问gcc下面有没有什么编译选项可以强制每个
变量都是按照 2或者4来对齐的?程序要求不能用pragma之类的语句来对齐。
谢谢了。
X****r
发帖数: 3557
2
Have you tried __attribute__ ((aligned (2))) ?
http://gcc.gnu.org/onlinedocs/gcc-3.1.1/gcc/Type-Attributes.html
BTW, it is 'alignment', not 'aligment'.

溃。

【在 b******a 的大作中提到】
: 嵌入式系统的CPU,对aligment要求很严。编译器是gcc。
: 函数要求传入一个(void *str)进去,然后函数里面会每2个byte读到一个local的变量
: 里面。
: 现在的问题是如果设一个变量如: char *mystr="this is my str"; 然后把mystr传入
: 函数,有时间mystr不是按照2或者4来对齐的,这样函数内部就会出错,导致系统崩溃。
: 因为一般情况下,char是没法对齐的。请问gcc下面有没有什么编译选项可以强制每个
: 变量都是按照 2或者4来对齐的?程序要求不能用pragma之类的语句来对齐。
: 谢谢了。

b******a
发帖数: 215
3
谢谢。 问题是我们是给用户提供API接口的。不可能要求用户在他们自己的代码里用
attribute或者pragma的。如果是单单的几个API还可以改API,现在可能有几千个API都
存在这样的问题,所以只能从编译器的角度来改了。

【在 X****r 的大作中提到】
: Have you tried __attribute__ ((aligned (2))) ?
: http://gcc.gnu.org/onlinedocs/gcc-3.1.1/gcc/Type-Attributes.html
: BTW, it is 'alignment', not 'aligment'.
:
: 溃。

X****r
发帖数: 3557
4
gcc 的这类编译开关多半是目标体系结构相关的,你得查gcc 手册里有关你这个体系结
构的部分了。

【在 b******a 的大作中提到】
: 谢谢。 问题是我们是给用户提供API接口的。不可能要求用户在他们自己的代码里用
: attribute或者pragma的。如果是单单的几个API还可以改API,现在可能有几千个API都
: 存在这样的问题,所以只能从编译器的角度来改了。

p****s
发帖数: 32405
5
稍微顶一下, 我想知道楼主有没有下文?
最后在compiler lvl怎么搞的?

【在 X****r 的大作中提到】
: gcc 的这类编译开关多半是目标体系结构相关的,你得查gcc 手册里有关你这个体系结
: 构的部分了。

b******a
发帖数: 215
6
没法弄。先修改用户手册,告诉用户自己要确保 data alignment,不然的话系统就罢工
,报出错信息了。

【在 p****s 的大作中提到】
: 稍微顶一下, 我想知道楼主有没有下文?
: 最后在compiler lvl怎么搞的?

1 (共1页)
进入Programming版参与讨论
相关主题
问个简单的memory allocation 的问题。[合集] call-by-ref降低了C++程序可读性
问个简单的C++问题C++函数里什么时候传入指针的引用和传入指针是不一样的?
问个内存的问题模板类中的一个类型问题?
问个c++ struct和指针问题关于构造函数的一道测试题 (转载)
C怪问题一个问个C++编译器如何处理函数内的static 变量
visual studio 编译器怎么关掉warning?inline function是否可以递归?
[合集] Intel 9编译器在vc 6.0的环境里编译openmp的问题有熟悉php的吗?问个文本处理
问一个gcc下bit field的对齐问题请问c++里empty class的问题
相关话题的讨论汇总
话题: aligment话题: 对齐话题: mystr话题: 函数话题: api