美文网首页
C 语言之宏定义与条件编译

C 语言之宏定义与条件编译

作者: CarsonChen | 来源:发表于2016-01-07 20:50 被阅读245次

一. 宏定义

#define PI 3.141592653 //无参宏

#define SUM(a,b) a + b //有参宏与函数不一样

1. 调用PI时等同于获取数字3.141592653

2. 调用SUM(a,b)时,仅仅只为a + b不为函数

二. 条件编译

#ifdef PI

//#ifndef

//#ifdef

//#if 1

int sum(int a,int b) {

return a + b;

}

#else

//#elif xxx

int sum(int a,int b) {

return a * b;

}

#endif

#ifdef PI  //为如果定义过PI则执行以下代码

#ifndef PI  //为如果没有定义过PI则执行以下代码

#else  //如果为定义则执行下列代码

三. 所谓预编译即在代码编译之前执行的操作,预编译过程会做数据的准备和替换,为编译过程做准备.

四. 宏定义与条件编译的优点

宏定义的作用是在程序的预编译期进行整体替换,将宏定义的标志替换为其所替代的数据,宏定义有三大好处:1.提高代码可读性; 2.方便书写; 3.方便对数据做修改,如果数据产生变化,仅需要修改宏定义部分.

相关文章

  • C 语言之宏定义与条件编译

    一. 宏定义 #define PI 3.141592653 //无参宏 #define SUM(a,b) a + ...

  • C 宏定义与错误处理

    宏定义 C语言中宏定义,又叫预处理器。它不是编译器的组成部分,但却是编译过程中一个单独的步骤。简言之,C 预处理器...

  • Preprocessor

    预处理命令(主要有三种) 宏定义 文件包含 条件编译 宏定义如: 由于 C++已增加了 const 语句定义常量,...

  • gcc总结

    gcc的编译流程 test.c 预处理把宏定义展开、头文件包含、处理条件编译gcc -E test.c -o te...

  • golang条件编译

    开篇 golang中没有类似C语言中条件编译的写法,比如在C代码中可以使用如下语法做一些条件编译,结合宏定义来使用...

  • Swift中的条件编译

    1、条件编译2、宏定义define 1、条件编译 Swift中没有宏定义的概念,因此我们不能使用#ifdef的方法...

  • C语言学习(2)----C语言中的预处理

    C语言预处理功能概要 功能说明宏定义#define,#undef文件包含#include条件编译#ifdef,#i...

  • C语言内存分区

    运行之前 编译一个C程序会经历下面几个阶段: 预处理:宏定义展开,头文件展开,条件编译(#ifdef之类),不检查...

  • 嵌入式day13

    条件编译 编译器根据条件真假决定是否编译相关的代码 常见的条件编译有两种方法 根据宏是否定义 根据宏的值 结构体 ...

  • go使用build tags实现条件编译

    在C/C++中可以通过宏定义实现条件编译,比如在不同平台的机器上,调用不同的函数,或者通过编译是传递参数,调用不同...

网友评论

      本文标题:C 语言之宏定义与条件编译

      本文链接:https://www.haomeiwen.com/subject/eapfkttx.html