C语言环境处理收尾

简介: C语言环境处理收尾

一. 命名约定

一般来讲 函数和宏的用法十分相似所以语言没办法帮我们区分二者。

拿我们平时的一个习惯是:

将宏名全部大写

函数名不要全部大写


二. #undef

当我们下面不想再用一个宏的时候我们可以使用这个符号

这样我们下面就无法使用宏了

举个例子



使用了这个#undef之后 我们就不能再使用Max了


三. 条件编译

直接上代码

#define PRINT 1
int main()
{
#ifdef PRINT
  printf("hehe\n");
#endif
  return 0;
}

调试性的代码,删除可惜,保留又碍事,所以我们可以选择性的编译。

常见的条件编译指令有

1.
#if 常量表达式
 //...
#endif
//常量表达式由预处理器求值。
如:
#define __DEBUG__ 1
#if __DEBUG__
 //..
#endif
2.多个分支的条件编译
#if 常量表达式
 //...
#elif 常量表达式
 //...
#else
 //...
#endif
3.判断是否被定义
#if defined(symbol)
#ifdef symbol
#if !defined(symbol)
#ifndef symbol
4.嵌套指令
#if defined(OS_UNIX)
 #ifdef OPTION1
 unix_version_option1();
 #endif
 #ifdef OPTION2
 unix_version_option2();
 #endif
#elif defined(OS_MSDOS)
 #ifdef OPTION2
 msdos_version_option2();
 #endif
#endif

多分支



判断是否定义


四. 文件包含

4.1 查找策略

查找策略:先在源文件所在目录下查找,如果该头文件未找到,编译器就像查找库函数头文件一样在标准位置查找头文件。如果找不到就提示编译错误。

4.2 文件的嵌套包含

所以说我们可以写出以下代码


当我们写出这些代码的时候 头文件就会只会被引用一次

当然使用#pragma once的效果也是一样的

以上便是本文所有内容,如有错误请各位大佬不吝赐教,感谢留言

目录
相关文章
|
5天前
|
C语言 索引
C语言编译环境中的 调试功能及常见错误提示
这篇文章介绍了C语言编译环境中的调试功能,包括快捷键操作、块操作、查找替换等,并详细分析了编译中常见的错误类型及其解决方法,同时提供了常见错误信息的索引供参考。
|
22天前
|
Linux C语言 Windows
C语言文件编程-Linux环境下运行
本文介绍了在Linux环境下使用C语言进行文件编程时的两种主要接口:C标准库函数与Linux系统调用。C标准库提供了`fopen`, `fread`, `fwrite`, 和 `fclose`等函数,适用于普通文件操作;而Linux系统调用如`open`, `read`, `write`, 和 `close`则更适合处理设备文件,同时也可用于普通文件。这两种方法的主要区别在于前者使用文件指针,后者使用文件描述符。文章还给出了两个示例程序:一个使用C标准库函数实现文件复制,另一个则使用Linux系统调用完成相同任务。
19 2
|
2月前
|
存储 编译器 C语言
C语言学习记录——调试技巧(VS2019环境下)
C语言学习记录——调试技巧(VS2019环境下)
34 2
|
2月前
|
存储 自然语言处理 编译器
C语言——环境与预处理
C语言——环境与预处理
15 0
|
2月前
|
编译器 C语言
C语言收尾 预处理相关知识
C语言收尾 预处理相关知识
19 0
|
3月前
|
编译器 Linux C语言
【C语言】程序环境预处理 -- 详解(下)
【C语言】程序环境预处理 -- 详解(下)
|
3月前
|
存储 程序员 C语言
【C语言】程序环境预处理 -- 详解(上)
【C语言】程序环境预处理 -- 详解(上)
|
3月前
|
存储 自然语言处理 编译器
c语言的程序环境和预处理(一眼丁真)
c语言的程序环境和预处理(一眼丁真)
|
3月前
|
C语言
C语言进阶21收尾(编程练习)(atoi,strncpy,strncat,offsetof模拟实现+找单身狗+宏交换二进制奇偶位)(下)
C语言进阶21收尾(编程练习)(atoi,strncpy,strncat,offsetof模拟实现+找单身狗+宏交换二进制奇偶位)
33 0
|
3月前
|
C语言
C语言进阶21收尾(编程练习)(atoi,strncpy,strncat,offsetof模拟实现+找单身狗+宏交换二进制奇偶位)(上)
C语言进阶21收尾(编程练习)(atoi,strncpy,strncat,offsetof模拟实现+找单身狗+宏交换二进制奇偶位)
102 0