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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

指針大小可以在數(shù)據(jù)指針和函數(shù)指針之間變化嗎?

指針大小可以在數(shù)據(jù)指針和函數(shù)指針之間變化嗎?

C
撒科打諢 2019-10-19 16:49:21
我只是在閱讀C FAQ中有關(guān)指針的部分。它討論了不能使用void *指針來(lái)保存函數(shù)指針,因?yàn)橹赶驍?shù)據(jù)的指針和指向函數(shù)的指針在某些平臺(tái)上可能具有不同的大小,并且void *僅保證足夠大以容納指向數(shù)據(jù)的指針。誰(shuí)能舉一個(gè)平臺(tái)的例子,其中指向數(shù)據(jù)的指針和指向函數(shù)的指針實(shí)際上具有不同的大???
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

> type ppp.c

#include <stdio.h>

#include <stdlib.h>


int global = 0;


int main(void) {

    int local = 0;

    static int staticint = 0;

    int *mall;

    int (*fx)(void);


    fx = main;

    mall = malloc(42); /* assume it worked */

    printf("#sizeof pointer to local: %d\n", (int)sizeof &local);

    printf("#sizeof pointer to static: %d\n", (int)sizeof &staticint);

    printf("#sizeof pointer to malloc'd: %d\n", (int)sizeof mall);

    printf("#sizeof pointer to global: %d\n", (int)sizeof &global);

    printf("#sizeof pointer to main(): %d\n", (int)sizeof fx);

    free(mall);

    return 0;

}

> tcc -mc ppp.c

Turbo C  Version 2.01 ...

warnings about unused variables elided ...

Turbo Link  Version 2.0 ...

> ppp

#sizeof pointer to local: 4

#sizeof pointer to static: 4

#sizeof pointer to malloc'd: 4

#sizeof pointer to global: 4

#sizeof pointer to main(): 2

> tcc -mm ppp.c

> ppp

#sizeof pointer to local: 2

#sizeof pointer to static: 2

#sizeof pointer to malloc'd: 2

#sizeof pointer to global: 2

#sizeof pointer to main(): 4

tcc -mc在“緊湊”模型中生成代碼;tcc -mm在“中”模型中生成代碼


查看完整回答
反對(duì) 回復(fù) 2019-10-19
?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

在實(shí)模式x86上,按段+偏移量訪問(wèn)代碼和數(shù)據(jù),每段16位?!敖敝羔槂H為16位,并使用當(dāng)前段,“遠(yuǎn)”指針為32位,并指定段和偏移量。對(duì)于C編譯器,您可以選擇幾種不同的內(nèi)存模型,其中代碼和數(shù)據(jù)的近或遠(yuǎn)指針具有不同的默認(rèn)值。

例如,默認(rèn)情況下,“中”內(nèi)存模型使用近指針存儲(chǔ)數(shù)據(jù),而遠(yuǎn)指針存儲(chǔ)代碼。

如果某些現(xiàn)代嵌入式處理器具有類似的內(nèi)存模型,我不會(huì)感到驚訝。


查看完整回答
反對(duì) 回復(fù) 2019-10-19
?
猛跑小豬

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

請(qǐng)注意,POSIX要求指向?qū)ο蟮闹羔樅椭赶蚝瘮?shù)的指針具有相同的大?。?/p>


2.12.3指針類型


所有功能指針類型均應(yīng)與void的類型指針具有相同的表示形式。將函數(shù)指針轉(zhuǎn)換為void *不會(huì)改變表示形式??梢允褂蔑@式強(qiáng)制轉(zhuǎn)換將此類轉(zhuǎn)換產(chǎn)生的void *值轉(zhuǎn)換回原始函數(shù)指針類型,而不會(huì)丟失信息。


注意:ISO C標(biāo)準(zhǔn)不需要這樣做,但是為了符合POSIX要求,它是必需的。


因此,要求POSIX兼容性的系統(tǒng)將是統(tǒng)一的。如果您僅針對(duì)此類機(jī)器,則不必?fù)?dān)心差異。


查看完整回答
反對(duì) 回復(fù) 2019-10-19
  • 3 回答
  • 0 關(guān)注
  • 554 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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