C语言基础总结(第二节-预处理器和库)

写这篇的目的是总结c语言基础语法,梳理知识框架,方便之后复习。。。

先回顾下c语言课本里面的框架:

一:c语言框架

链接:
(1) c入门
(2) c预处理器和库
(3)数据类型和变量
(4)常量和作用域
(5)基本运算
(6)语句
(7)数组
(8)函数
(9)结构体和共用体
(10)链表
(11)文件的输入输出
(12)内存管理

二:c预处理器和库

	1.常用的预处理指令:
			(1).#define
				用于进行字符串替换,不进行类型检查,无数据类型。在预处理阶段进行处理。
			(2).##
				用于进行字符拼接。例如 #define x(4)  x##4      则x(4)  相当于x4
			(3).#error:
				(1)#error 是一种预编译器指示字,用于生成一个编译错误消息 。可以进行自定义
				  (2) 用法:#error [message] //message为用户自定义的错误提示信息,可缺省。
				  (3) #error 可用于提示编译条件是否满足。编译过程中的任何错误意味着无法生成最终的可执行程序。
					例如:
					#ifndef UNIX
					#error  This software requires the  UNIX OS.
					#endif
			(4).#parama
					进行字节对齐的预处理指令(后面补充)
			(5).include
					进行头文件的包含,将头文件包含于当前文件中
			(6).#undef
					决定宏定义的作用域,作用域为#define到#undef
			(7).条件编译
					用于判断不同宏定义的值,从而执行不同的流程
					#ifdef  #elif #else  #endif
	
	2.预定义宏
			如 编译器内部自带的宏,供用户使用。
			如 __FILE__  __DATE__  __TIME__
			使用 printf("%s",__DATE__);


	4.内敛函数
			具有内部链接的函数称为内敛函数
			定义inline int square(int x){ return x*x;}; 使用  square
			内联函数内部代码量不能太大,不能有循环。否则执行时间会变长,调用开销会增大
			它的作用是能够减少函数调用开销以及提高程序执行效率


  5.断言库
  			c++11特性,用于编译器检查表达式是否正确。如果不正确打印对应的字符串,并让编译不通过。
  			用#define NODEBUG 来决定断言库是否打开,如果用该宏定义,那么断言库不打开,如果没有,那么断言库打开。
  			断言库所用的表达式一般是逻辑表达式或者条件表达式。当表达式为假或者为非0时,此时编译不通过并输出对应字符串。


 6.可变参数(待补充)
 			头文件 stdarg.h
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值