C99标准和C知识漏洞笔记

本文介绍了C99标准中基本数据类型的变化,包括stdint库的使用和bool类型的引入。同时,文章揭示了C语言中的一些知识漏洞,如主函数的指定方法,指出在GCC编译器中可以通过指定函数名来设置主函数,如`_work`。此外,还讨论了C语言中结构体赋值的特殊语法。
摘要由CSDN通过智能技术生成

基本数据类型

stdint

<cstdint>(stdint.h)
类型关键字类型关键字(旧)占用字节数表示范围表示范围(十进制)
uint8_tunsigned char10x00~0xFF0~255
uint16_tunsigned short20x0000~0xFFFF0~65535
uint32_tunsigned long40x00000000~0xFFFFFFFF0~4294967295
uint64_tunsigned long long80x0000000000000000~0xFFFFFFFFFFFFFFFF0~18446744073709551615
int8_tsigned char10x00~0xFF-128~127
int16_tshort20x0000~0xFFFF-32768~32767
int32_tlong(32位)int(64位)40x00000000~0xFFFFFFFF-2147483648~2147483647
int64_tlong long(32位)long(64位)80x0000000000000000~0xFFFFFFFFFFFFFFFF-9223372036854775808~9223372036854775807

bool

<cstdbool> (stdbool.h)

知识漏洞

主函数

gcc中可以指定主函数
例如,我们希望把work函数作为主函数,就可以这样写:

gcc main.c -e _work

需要注意的是,我们在C中写的函数名,在编译时会自动加上下划线,所以这里我们要写_work。这样,就可以指定程序的主函数为work函数。

结构体赋值特殊语法


enum sex {
    SexMale,
    SexFemale
};

struct student {
    uint32_t id;
    uint32_t classId;
    uint32_t level;
    enum sex sex;
};

int main(int argc, const char *argv[]) {
    struct student s1 = {
        id : 5,
        classId : 10,
        level : 2,
        sex : SexMale
    };

    s1.level = 3;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值