c语言小白学习历程第三篇

本文介绍了2020年10月的学习内容,包括结构体、枚举、联合体的使用,以及编程中的常见宏定义如__FILE__,__LINE__,__DATE__,__TIME__和__STDC__。此外,讲解了如何生成随机数和指针赋值规则,以及编译流程和C语言的一些特性,如switch语句和类型扩展。
摘要由CSDN通过智能技术生成

学习目标:

难的咱也看不懂,先把简单的看了再说,加油L 冲冲冲!

学习时间:

2020年10月30日

学习产出:

结构体(位段)struct
枚举 enum
联合体 union
union {
int a;
float b;
char c[4];
}x = {5};
联合体可以被初始化,但这个初始化值必须是联合体第一个变量成员的类型,而且它必须位于花括号内

常用的宏:
_ _ FILE _ _ :文件名称
_ _ LINE_ _ :代码所在行
_ _ DATE _ _ :当前日期
_ _ TIME_ _ :当前时间
_ _ STDC_ _:如果遵循ANSI C,值为1,否则未定义

随机数:
srand((unsigned int)time(NULL));
rand()%16;
上述可以获取到以时间为种子,16内的随机数

两个操作数都是指向有限定符或无限定符的相同类型的指针,左边指针所指向的类型必须具有右边指针所指向类型的全部限定符才可以被赋值,不然编译会有报错

gcc 只编译不链接

switch语句中case和default的顺序可以是任意的,如果某个case语句后面不加break,程序就会依次执行下去

可以用其他类型说明符对宏类型名进行扩展,但对typedef所定义的类型名却不能
eg:
#define peach int
unsigned peach i; 没问题

typedef int banana;
unsigned banana i; 错误,非法

编码阶段:

  1. 预处理阶段:根据‘#’开头的命令,将所有内容展开,并把它直接放到程序中
  2. 编译阶段:检查代码规范性,是否有语法错误,无误之后转换为汇编语言
  3. 汇编阶段:将编译阶段产生的‘xxx.s’文件转换为目标文件‘xxx.o’的二进制代码
  4. 链接阶段:去系统默认的路径目录下去寻找类似于‘xxx.so’的库文件,以便于链接对应的函数
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aug_leiyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值