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的特徵,它可以使編譯器檢查函數聲明和函數實際調用參數之間的格式化字元串是否匹配。