亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 《Linux設(shè)備驅(qū)動可開發(fā)技術(shù)及應(yīng)用》筆記 1.16 [打印本頁]

作者: sillyboytao    時間: 2011-01-16 19:26
標(biāo)題: 《Linux設(shè)備驅(qū)動可開發(fā)技術(shù)及應(yīng)用》筆記 1.16
《Linux設(shè)備驅(qū)動可開發(fā)技術(shù)及應(yīng)用》這本書看了得有一個禮拜了,今天看完第十章 程序一般同時包含head dev app,越來越綜合 也更容易看書我不懂的地方,怕查過之后又忘 在博客記錄一下

主要問題還是在Linux C上,有些函數(shù)或者宏還看不出細(xì)節(jié)。以后第一眼看不出細(xì)節(jié)的就記下來 今天只記了不懂的關(guān)鍵字,日后加上宏可能條理會清晰些。



一、void指針:
  1. (Void *)&XXXX 和 (const void *XXXX
  查了半天貌似不是什么高端語句 就是:指針地址指向XXXX地址,括號的只是作用是確定結(jié)合順序。用來說明是是空類型的指針 目的是數(shù)據(jù)類型更廣 易于賦值。
可詳見:http://blogold.chinaunix.net/u2/64540/showart_730801.html



二、break語句:
  1. while(1)
  2. {
  3.     if() break;
  4. }
  以前一直以為break“跳出當(dāng)前語句”的意思是跳出上述的if,今天查了下譚浩強的書;
  改正為:if為真時執(zhí)行break跳出while,為假時執(zhí)行if語句下的仍在while中的語句
(原來認(rèn)為的錯誤理解:××此時的if如果是真 順序進(jìn)行到下一條,如果if為假 則執(zhí)行break、break的結(jié)果是去執(zhí)行whlie的下一條語句!痢粒



三、__attribute__語句

  1. typedef struct
  2. {
  3.  ... ...
  4. }__attribute__ ((packed)) XXXX;

語法格式為:__attribute__ ((attribute-list))   其位置約束為:放于聲明的尾部“;”之前。

packed

使用該屬性對struct或者union類型進(jìn)行定義,設(shè)定其類型的每一個變量的內(nèi)存約束。當(dāng)用在enum類型定義時,暗示了應(yīng)該使用最小完整的類型(it indicates that the smallest integral type should be used)。

下面的例子中,my-packed-struct類型的變量數(shù)組中的值將會緊緊的靠在一起,但內(nèi)部的成員變量s不會被“pack”,如果希望內(nèi)部的成員變量也被packed的話,my-unpacked-struct也需要使用packed進(jìn)行相應(yīng)的約束。

  1. struct my_unpacked_struct
  2. {
  3.    char c;
  4.    int i;
  5. };

  6.          
  7. struct my_packed_struct
  8. {
  9.    char c;
  10.    int i;
  11.    struct my_unpacked_struct s;

  12. }__attribute__ ((__packed__));



還有個用法類似packed

使用該屬性可以使得變量或者結(jié)構(gòu)體成員使用最小的對齊方式,即對變量是一字節(jié)對齊,對域(field)是位對齊。下面的例子中,x成員變量使用了該屬性,則其值將緊放置在a的后面:

  1. struct test
  2. {
  3.    char a;
  4.    int x[2] __attribute__ ((packed));
  5. };

其它可選的屬性值還可以是:cleanup,commonnocommon,deprecated,mode,sectionshared,tls_model,transparent_union,unusedvector_size,weakdllimport,dlexport等,

詳細(xì)信息可參考:http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Variable-Attributes.html#Variable-Attributes


__attribute__的博客簡介:GNU C 擴展之__attribute__ 機制簡介











歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2