栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(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

#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
//	
//}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/934261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号