第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

typedef固定長度數(shù)組

typedef固定長度數(shù)組

C
慕碼人2483693 2019-08-30 14:43:12
我必須定義一個24位數(shù)據(jù)char[3]類型。我用來表示類型。我可以的typedef char[3]來type24?我在代碼示例中嘗試過它。我輸入typedef char[3] type24;了我的頭文件。編譯器沒有抱怨它。但是當(dāng)我void foo(type24 val) {}在我的C文件中定義一個函數(shù)時,它確實抱怨了。我希望能夠定義type24_to_int32(type24 val)代替的函數(shù)type24_to_int32(char value[3])。
查看完整描述

3 回答

?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗 獲得超7個贊

typedef會是


typedef char type24[3];

但是,這可能是一個非常糟糕的主意,因為結(jié)果類型是一種數(shù)組類型,但它的用戶不會看到它是一個數(shù)組類型。如果用作函數(shù)參數(shù),它將通過引用傳遞,而不是通過值傳遞,并且sizeoffor它將是錯誤的。


一個更好的解決方案是


typedef struct type24 { char x[3]; } type24;

您可能也希望使用unsigned char而不是char,因為后者具有實現(xiàn)定義的簽名。


查看完整回答
反對 回復(fù) 2019-08-30
?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊

你要


typedef char type24[3];

C類型的聲明很奇怪。如果聲明了該類型的變量,則將類型精確地放在變量名稱的位置。


查看完整回答
反對 回復(fù) 2019-08-30
?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊

來自R ..的回答:


但是,這可能是一個非常糟糕的主意,因為結(jié)果類型是一種數(shù)組類型,但它的用戶不會看到它是一個數(shù)組類型。如果用作函數(shù)參數(shù),它將通過引用傳遞,而不是通過值傳遞,并且它的sizeof將是錯誤的。


沒有看到它是一個數(shù)組的用戶很可能會寫這樣的東西(失?。?/p>


#include <stdio.h>


typedef int twoInts[2];


void print(twoInts *twoIntsPtr);

void intermediate (twoInts twoIntsAppearsByValue);


int main () {

    twoInts a;

    a[0] = 0;

    a[1] = 1;

    print(&a);

    intermediate(a);

    return 0;

}

void intermediate(twoInts b) {

    print(&b);

}


void print(twoInts *c){

    printf("%d\n%d\n", (*c)[0], (*c)[1]);

}

它將使用以下警告進(jìn)行編譯:


In function ‘intermediate’:

warning: passing argument 1 of ‘print’ from incompatible pointer type [enabled by default]

    print(&b);

     ^

note: expected ‘int (*)[2]’ but argument is of type ‘int **’

    void print(twoInts *twoIntsPtr);

         ^

并產(chǎn)生以下輸出:


0

1

-453308976

32767


查看完整回答
反對 回復(fù) 2019-08-30
  • 3 回答
  • 0 關(guān)注
  • 663 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號