C预处理器和C库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C预处理器和C库相关的知识,希望对你有一定的参考价值。

#define #include #undef #ifdef #else #endif

#if #elif #else #endif


预处理宏: p463 _ _fun_ _是预定义标识符(函数作用域),不是宏(文件作用域)

#line --重置_ _LINE_ _和_ _FILE_ _宏报告的行号和文件名 #error

#pragma --将编译器指令置于源代码中


内联函数 inline --减少执行的时间

 

函数库 、数学库 略...

 

exit() atexit()

exit()执行了atexit()指定的函数后(先执行最后添加的文件),
将做一些自身清理的工作,它会刷新所有输出流、关闭所有打开的流、关闭通过调用标准I/O函数tmpfile()创建的临时文件


qsort()最有效的排序算法之一

void*指针赋给一个指针或另一个类型的时候,c++需要一次强制类型转化,c不用

诊断库:assert.h中的assert()--标识出程序中某个条件应为真的关键位置 , 在assert.h前添加#define NDEBUG 可以把它禁用了

 

 


string.h库中memcpy()与memmove()用于字符之间进行整体复制,不会进行字符转换


可变参数:stdarg.h va_start() va_arg() va_end() va_copy();

 

以上是关于C预处理器和C库的主要内容,如果未能解决你的问题,请参考以下文章

第 16 章 C 预处理器和 C 库(条件编译)

第 16 章 C 预处理器和 C 库(可变参数:stdarg.h)

1.预处理器,编译器,汇编器和链接器

如何在 Visual Studio 中自动将预处理器和注释块插入到新的 C++ 头文件中?

KEIL编译器预处理器和预定义宏(include,ifdef,def等)

《C++ Primer Plus》学习笔记 2.1.3 C++预处理器和iostream文件