C語(yǔ)言的一些符號(hào)含義、 函數(shù)含義

union:共用體/聯(lián)合體

union 共用體名{
成員列表
};

類似結(jié)構(gòu)體,是一群變量的集合,和集合不同的是:

  1. 共用體分配空間時(shí),是依據(jù)內(nèi)部變量中最大變量的大小分配的。
    如下,double最大,需要8byte,所以分配8字節(jié)空間
union data{
    int n;
    char ch;
    double f;
};
  1. 實(shí)際上,共用體只分配空間,不管空間內(nèi)的任何操作
    如下:根據(jù)共用體內(nèi)部變量分配好空間大小,甚至可以寫(xiě)入未定義的變量類型
union var1{
        int a;
        double b;
};

int main()
{
        union var1 uu;
        uu.a=1;
        char* p1;
        p1  = &uu;
        p1[0] = 'a';
        p1[1] = 'b';
        p1[2] = '\0';
        printf("%s", &uu);
        return 0;
}

attribute :設(shè)置特殊屬性

attribute可以設(shè)置函數(shù)屬性(Function Attribute)、變量屬性(Variable Attribute)和類型屬性(Type Attribute)

union + attribute ((transparent_union)): 透明聯(lián)合

這里其實(shí)也可以是 attribute ((transparent_union)),說(shuō)是為了防止重名

透明聯(lián)合相關(guān)介紹:https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Type-Attributes.html#Type-Attributes

##的作用:連接符

字符數(shù)組,字符指針

  • 數(shù)組的變量名存放的值是數(shù)組第一個(gè)值的內(nèi)存地址,所以數(shù)組名就是一個(gè)指針
  • 字符數(shù)組作用就是存放字符串的
  • 字符指針char*指向一串以00結(jié)尾的字符串
  • 所以字符指針就是字符數(shù)組,即char * == char []
//下面這樣的賦值是可行的
char a[2] = "a";
char *b = a;
printf("first value is :%s", b);

char **argv == char *argv[]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容