attributec语言
⑴ c语言[Error] expected '=', ',', ';', 'asm' or '__attribute__' before 'int'
(1)要加 #include <time.h> 用于 time(0) 调用
(2)这4个要加分号,作为函数原型声明。
int jia(int x,int y);
int jian(int x,int y);
int cheng(int x,int y);
int chu(int x,int y);
(3)这两句的次序,要先写声明,后写语句
int x,y,z,count=0,i,a,h;
srand(time(0));
(4)开关语句 结束处,漏了一个 闭花括号
switch(h){ ...;
case 4: ....break;
}; // 这里要加闭花括号
scanf("%d",&a);
另外提醒,你的除法运算 是 整除, q=x/y, 例如 8/9 得 0,是你希望的吗?
⑵ __attribute__((section("__CONFIG1.sec,code")))在C语言中这是啥意思啊大侠帮解释一下呗
《C30编译器用户指南》中有介绍,给个邮箱给你发过去。
2.3.1 指定变量的属性
编译器的关键字 __attribute__ 用来指定变量或结构位域的特殊属性。关键字后的
双括号中的内容是属性说明。下面是目前支持的变量属性:
• address (addr)
• aligned (alignment)
• boot
• deprecated
• fillupper
• far
• mode (mode)
• near
• noload
• packed
• persistent
• reverse (alignment)
• section ("section-name")
• secure
• sfr (address)
• space (space)
• transparent_union
• unordered
• unused
• weak
weak也可以通过在关键字前后使用 __(双下划线)来指定属性(例如,用
__aligned__代替aligned)。这样将使你在头文件中使用它们时不必考虑会出现与
宏同名的情况。
要指定多个属性,可在双括号内用逗号将属性分隔开,例如:
__attribute__ ((aligned (16), packed))。
⑶ c语言中结构体的值
```
首先..纠正楼上两位的错误```
attribute_t *p = new attribute_t;
跟
pattribute = (attribute_t *) (pktdata+42+prclen);
是有本质区别的```
第一种分配了一个attribute_t结构体的内存空间```
第二种的话只是简单的指针赋值而已```而且赋给的值还是一块未分配的内存``
如果是第一种的话, 它的值是不确定的, 因为你没有初始化.
如果是第二种的话, 会出现运行时错误, 因为pktdata+42+prclen, 你强制转换
的这个地址可能并没有被分配```除非你有特殊处理, 先在pktdata+42+prclen这块地址分配了一个attribute_t...
⑷ 关于C语言的__attribute__
__attribute__ 是一个gcc的关键字,自己看吧,用法比较多
https://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/gcc/variable-attributes.html
⑸ C语言 attribute的问题
对于
你的问题
不太明白。
#define
__init_call
__attribute__
((unused,__section__
(".initcall.init
")))
参考GCC说明,意思是说所有以__init_call
前缀
定义
的
函数
在链接
过程
中都放到名字为.initcall.init的段(section)里面。也就是说,如果一个函数冠以__init_call,那么它在编译链接的时候就会放到.initcall.init这个段里面。
⑹ C语言中的typedef 定义结构体的问题。
替代 __attribute__((packed))
当然只在 LINUX 下有效果
所以前边有
#ifdef SYSTEM_USE_ARM_LINUX
来做为约束条件
在非LINUX 系统下 stPACKED 就是空了
这是为了提高代码的可移植性
__attribute__((packed)) 是 LINUX 下c语言扩展的语法
windows下c语言里是没有的
在LINUX下替换后是
typedef struct {
//成员名省略
} __attribute__((packed)) MDIN_4CHVIDEO_INFO;
在windows下替换后是
typedef struct {
//成员名省略
} MDIN_4CHVIDEO_INFO;
⑺ c语言attribute的isr参数
该__attribute__属性可以给被声明的函数加上类似printf或者scanf的特征,它可以使编译器检查函数声明和函数实际调用参数之间的格式化字符串是否匹配。