(C语言) 操作符&预处理

扩展:

1.回车\r:光标回到当前行的最开始。换行\r:光标移动到下一行。

2.C99规定,’a‘叫做整形字符常量,被看成int型。

3.健壮性:系统在不正常输入情况下仍能表现正常的程度。

4.取整:C中默认向0取整,floor(向-∞取整);trunc(向0取整);ceil(向+∞取整);round(四舍五入)。取余:尽可能让商向0取整;取模:尽可能让商向-∞取整;(a=q*d+r)

5.宏定义字符串一定要带上“ ”。

6.预处理:文本式代码转为二进制代码称为翻译。①预处理-E:头文件展开、去注释、宏替换、条件编译②编译-S:C语言编译为汇编语言③汇编-c:将汇编语言转化为可重定向的二进制文件(可被链接)④链接:自身程序+库文件进行关联,形成可执行程序。预处理阶段先去注释,在宏替换。

7.宏定义还可以通过命令行、预处理器定义。条件编译支持嵌套。头文件展开:将头文件的内容,拷贝至目标源文件。

8.#error"   " :打印信息到输出(编译不通过)。__FILE__文件信息,__LINE__ 所在行号;#line 60  “ ”自定义行号为60。#pragma message(“  ”),打印信息到输出(能编译通过)。#pragma pack(x),设置内存最小对齐数为x。

9.相邻字符串具有自动连接属性。#: #define  STRING(s)  #s  将宏参s转为字符串。##:#define XNAME(n)  student##n   将宏参文本链接。

主要内容:

1.注释符号:注释被替换,本质是替换成空格。

2.\:①续行符之前可以空格,之后只能跟回车。②转义符,字面转特殊n->\n;特殊转字面"->\"。

3.逻辑运算符:&&   ||   从左向右执行,&& 前为假,发生短路;|| 前为真,发生短路。

4.按位运算符:& :按位与 。 | :按位或。^:按位异或。 ~:按位取反。任何数与0异或是他本身,交换a b的值,a=a+b;b=a-b;a=a-b; (有溢出风险)。a=a^b;b=a^b;a=a^b;溢出发生于寄存器,截断发生于内存。

5.<<  >>:左移,最高位丢弃,最低位补0;右移,最低位丢弃,最高位无符号补0(逻辑右移),有符号最高位补符号位(算数右移)。

6.#define:替换多条语句时,可以写成do { } while(0)结构(尽量少用)。宏中的参数尽量都带上括号。#undef:取消宏,用来限定宏的有效范围。宏可以定义在源文件的任意地方,一般习惯于放在最上面。与是否在函数内无关。宏的作用范围:定义处往后都是有效的。

7.条件编译:#ifdef  #ifndef  #if  #else  #endif  #if defined()

  

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

#define C  
#define CPP
#define LLL
int main()
{
#if (defined(C)&&defined(CPP))
    #if defined(LLL)
	printf("real");
    #endif
	printf("C+CPP");
#else
	printf("fake");
#endif
	
}

//#define C 
//int main()
//{
//#ifndef C
//	printf("no define");
//#else
//	printf("define");
//#endif
//	
//}

//#define C  0
//int main()
//{
//#if C
//	printf("real");
//#else
//	printf("fake");
//#endif
//	
//}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Zhang丶&|!

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

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

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

打赏作者

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

抵扣说明:

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

余额充值