- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C 语⾔学习笔记第⼀部分:语⾔
第⼀部分: 语⾔
⽰例基于 GCC 32bit ...
1. 数据类型
1.1 整数
以下是基本整数关键词:
char: 有符号8位整数。
short: 有符号16位整数。
int: 有符号32位整数。
long: 在32位系统是32整数 (long int) ,在64位系统则是64位整数。
long long: 有符号64位整数 (long long int) 。
bool: _Bool 类型,8位整数,在 stdbool .h 中定义了 bool / true / alse 宏 于使
⽤。
由于在不同系统上 char 可能代表有符号或⽆符号8位整数,因此建议使⽤ unsigned
char /signed char 来表⽰具体的类型。
在 stdint .h 中定义了⼀些看上去更明确的整数类型。
typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
#if __WORDSI E == 64
typedef long int int64_t;
typedef unsigned long int uint64_t;
#else
__extension__
typedef long long int int64_t;
typedef unsigned long long int uint64_t;
#endif
还有各种整数类型的⼤⼩限制。
# define INT8_MIN (-128)
# define INT16_MIN (-32767-1)
# define INT32_MIN (-2147483647-1)
# define INT64_MIN (-__INT64_C(9223372036854775807)-1)
# define INT8_MAX (127)
# define INT16_MAX (32767)
# define INT32_MAX (2147483647)
# define INT64_MAX (__INT64_C(9223372036854775807))
# define UINT8_MAX (255)
# define UINT16_MAX (65535)
# define UINT32_MAX (4294967295U)
# define UINT64_MAX (__UINT64_C(18446744073709551615))
字符常量默认是⼀个 int 整数,但编译器可以⾃⾏决定将其解释为 char 或 int 。
char c = a;
printf(%c, size(char)=%d, size(a)=%d;\n, c, sizeof(c), sizeof
输出:
a, size(char)=1, size(a)=4;
指针是个有特殊⽤途的整数,在 stdint .h 中同样给出了其类型定义。
/* Types for `void * pointers. */
#if __WORDSI E == 64
typedef unsigned long int uintptr_t;
#else
typedef unsigned int uintptr_t;
#endif
不过在代码中我们通常⽤ sizeo (char*) 这样的⽤法,省得去处理32位和64位的区别。
我们可以⽤不同的后缀来表⽰整数常量类型。
printf(int size=%d;\n, sizeof(1));
printf(unsigned int size=%d;\n, sizeof(1U));
printf(long size=%d;\n, sizeof(1L));
printf(unsigned long size=%d;\n, sizeof(1UL));
printf(long long size=%d;\n, sizeof(1LL));
printf(unsigned long long size=%d;\n, sizeof(1ULL));
原创力文档


文档评论(0)