C语言零碎知识点
C语言是一个有结构化程序设计、具有变量作用域以及递归功能的过程式语言。下面我们来看看C语言零碎知识点。
1.编译预处理
2.宏定义:标识符代替字符串;分为有参数和无参数
3.#undef:删除前面定义的宏的名字。
4.无参宏:宏名后不带参数,一般形式:#define 标识符 字符串 ①宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号一起置换;②宏定义必须写在函数之外,其作用域为宏定义命令起到源程序结束。如要终止其作用域可使用#undef命令;③宏名在源程序中若用引号括起来,则预处理程序不对其作宏带换;④宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开时由预处理程序层层代换。⑤习惯上宏名用大写字母表示,以便于与变量区别。⑥宏定义只是简单的字符串代换,是在预处理完成的,而typedef是在编译时处理的,它不是作简单的`代换,而是对类型说明符重新命名。
5.带参宏定义:#define 标识符 字符串(含有参数)
#define M(y) (y*y + 3*y)①宏名和参数表之间不能有空格出现;②形式参数不分配内存单元因此不必做类型定义只是符号代换,不存在值传递的问题;③形参是标识符,实参可以是表达式;④形参通常要用括号括起来以避免出错;
6.文件包含:把指定的文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件。
1、#define
命令#define定义了一个标识符及一个串。在源程序中每次遇到该标识符时,均以定义的串代换它。ANSI标准将标识符定义为宏名,将替换过程称为宏
替换。命令的一般形式为:
#define identifier string
注意:
1该语句没有分号。在标识符和串之间可以有任意个空格,串一旦开始,仅由一新行结束。
2宏名定义后,即可成为其它宏名定义中的一部分。
3宏替换仅仅是以文本串代替宏标识符,前提是宏标识符必须独立的识别出来,否则不进行替换。例如:#define XYZ
this is a test,使用宏printf("XYZ");//该段不打印"this is a test"而打印"XYZ"。因为预编译器识
别出的是"XYZ"
4如果串长于一行,可以在该行末尾用一反斜杠' '续行。
-
c语言中多个if的用法
c语言中多个if的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中多个if的用法的用法,希望对你们有用。c语言中多个if的用法的用法如下:用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。语句的...
-
C语言如何提高程序效率
好的代码没有一个统一的衡量标准,在程序员们的世界里大家也是各自按照自己的标准衡量着自己和别人的代码。不过有一个标准几乎是被所有人认同的。服役时间越长、出错率越高的代码就是好代码。所有的编程方法、代码技巧甚至于设计模式都是为了达到这个目的而产生...
-
C语言自增(++)和自减(--)
C语言源自KenThompson发明的B语言,那么大家知道C语言自增(++)和自减(--)是什么呢?下面一起来看看!一个整数自身加一可以这样写:a+=1;它等价于a=a+1;。但是在C语言中还有一种更简单的写法,就是a++;或者++a;。这种写法叫做自加或自增;意思很明确,就是自身加一。相应...
-
C语言数组的定义及引用
引导语:数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。以下是本站小编分享给大家的C语言数组,希望大家喜欢!1.1一维数组的定义、初始化和引用1.一维数组的定义方式为:类型说明符数组名[常量表达式](1)数组名的命名方法...