复习·程序的编译和执行

1.源程序经过预处理、编译、汇编、链接等多个步骤后,才能生成可以在机器上直接运行的可执行程序。
#include 将头文件的内容包含到当前源文件中
#define 将宏定义进行宏展开
#ifdef 处理条件编译指令
#other 处理其他宏指令

链接分为静态链接和动态链接,最大区别静态链接是在形成可执行程序前,而动态链接的进行则是在程序执行时,具体差异可见https://blog.csdn.net/kang___xi/article/details/80210717

2.#与##在define 中的作用
宏定义中#运算符将后面的参数转换成字符串
宏定义中##运算符将前后的参数进行字符串连接

3.assert断言
用于在程序的DEBUG版本中检测条件表达式,如果结果为假,则输出诊断信息并终止于程序运行
头文件为assert.h
通俗一点说:编写代码时,我们假设代码运行到某行时,某些变量的值应该是等于多少,如果不等于,说明程序逻辑不对,可能造成不稳定,

比如,我之前定义了一个变量m ,在程序运行过程中m的值是会改变的,依照正确的思路,程序运行到100行时m的值应该是100,那么,我就在程序的第101行写上 assert(m=100);

如果m==100,那么assert返回true,如果m!=100,那么assert会返回false,程序运行到这里就会出现断言错误,

可见assert很大程度上辅助测试代码的,让代码更强壮更稳定(只能在debug模式下用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值