找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4751|回復(fù): 0
收起左側(cè)

C語言數(shù)據(jù)類型及強(qiáng)制轉(zhuǎn)換(待補(bǔ)充)

[復(fù)制鏈接]
ID:105323 發(fā)表于 2016-2-12 19:18 | 顯示全部樓層 |閱讀模式
typedef signed   char  s8;
typedef unsigned char  u8 ;
typedef signed   int  s16;
typedef unsigned int   u16;
typedef signed   long s32;
typedef unsigned long  u32;

  以上列出了常用的數(shù)據(jù)類型,在IAR編譯器中,char默認(rèn)的是unsignedchar,這點(diǎn)要注意,下例說明這個(gè)問題:
例1:
char a=5,b=6,c=0;
c=a-b;
結(jié)果c=255,顯然c是unsigned char,于是將char換成signed char,得到結(jié)果為-1;

例2:(強(qiáng)制類型轉(zhuǎn)換)
u16 a=30000,b=50000,c=10000;
u32 d=0;
d=a+b+c;
結(jié)果24464,因?yàn)閡nsignedchar最大值65535,a+b+c超出了65535,所以90000-65536=24464;
改為d=(u32)a+(u32)b+(u32)c,結(jié)果90000,由于強(qiáng)制將每個(gè)u16型轉(zhuǎn)化為u32型,故不存在溢出的問題



相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表