精华内容
下载资源
问答
  • 1.7 怎样声明和定义全局变量和函数**好? 33 1.8 如何在C中实现不透明(抽象)数据类型? 34 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中部分函数访问变量? 34 存储类型 35 1.10 同一个静态...
  • 2.3.1 不带参数的宏/56 2.3.2 带参数的宏/59 2.4 条件编译指令的使用/62 2.5 #pragma指令的使用/65 第3章 选择结构循环结构的程序设计/69 3.1 if语句及其易错点解析/70 3.2 条件表达式的使用/76 3.3 ...
  • 1.7 怎样声明和定义全局变量和函数最好? 1.8 如何在C中实现不透明(抽象)数据类型? 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中部分函数访问变量? 存储类型 1.10 同一个静态(static)函数或...
  • 笔记整理7: 编译预处理命令 C语言中除了有说明语句可执行语句以外,还用编译预处理命令。...1,不带参数的宏定义 #include 宏名 宏体 注意: 1,宏名为区别变量一般用大写字母表示。 2,在预...

    笔记整理7: 编译预处理命令


    C语言中除了有说明语句和可执行语句以外,还用编译预处理命令。按我的理解,其作用就是使画面更加简洁,程序更加灵活。需要注意的是,其是编译系统在对源程序编译为目标程序之前进行的。所以它最先开始喔。

    预处理命令
    宏定义
    文件包含
    条件编译
    不带参数的
    带参数的

    宏定义

    1,不带参数的宏定义

    #include 宏名 宏体

    注意:
    1,宏名为区别于变量,一般用大写字母表示。
    2,在预处理阶段,即对源程序进行编译之前,将源程序的所有宏名都用宏体替换。
    3,宏体是什么样子,替换时就是什么样子。(这里注意有无括号的区别)
    4,程序中出现的""内的宏名一律当作普通字符串处理。
    5,宏定义无须加;否则替换后,可能会报错。(C语言不检查)
    6,宏定义时,可以使用以定义过的宏名,即嵌套。

    例:

    #include <stdio.h>
    #define N 20
    #define M N-5
    int c;
    c=20*M;
    printf("%d",c);			这里输出的即是20*20-5,而非20*(20-5),二者差距还是挺大的
    

    2,带参数的宏定义

    #include 宏名(参数列表) 宏体

    注意:
    1,这里的参数列表和讲函数时类似,即实参。而宏体所指定的参数即是形参。运用时先将实参带入形参,再进行宏替换。
    2,宏名后一定不要加空格,否则会当成不带参数的宏定义进行处理。

    #include <stdio.h>
    #define SQR(x) x*x
    int k=3;
    printf("%d",SQR(3));		//这里将SQR(3)宏替换为3*3,即9
    
    输出结果:
    9
    

    文件包含

    其作用是在预处理时,用指定文件的内容替换掉该处理命令行。运用该功能,即可使不同的源代码文件整合在一起了。

    #include <文件名>

    注意:
    1,一对一,一个include只能对应一个源C文件。
    2,用<>括住头文件时,预处理程序只在存放C库函数头文件的标准目录中搜索要包含的文件。
    3,用""括住头文件,且没用指定文件的所在目录时,预处理程序首先在源文件所在的目录中寻找头文件,若找不到,再到标准目录中搜索。(一般要用文件包含,还是这个比较实用)


    条件编译

    这个不做强制要求,有兴趣的可在网上自行查阅。其目的,即使源程序的一部分代码满足一定要求后才编译执行。

    展开全文
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.7 怎样声明和定义全局变量和函数最好? 4 1.8 如何在C中实现不透明(抽象)数据类型? 5 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中部分函数访问变量? 5 存储类型 6 1.10 同一个静态...
  • 1.7 怎样声明和定义全局变量和函数最好? 4 1.8 如何在C中实现不透明(抽象)数据类型? 5 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中部分函数访问变量? 5 存储类型 6 1.10 同一个静态...
  • excel使用

    2012-11-25 17:06:01
    实际输入时候,通常应用等差数列输入法,先输入前二个值,定出自变量中数与数之间步长,然后选中A2A3两个单元格,使这二项变成一个黑色边框矩形,再用鼠标指向这黑色矩形右下角小方块“■”,当光标...
  • 10.4.2 使用字符串指针变量与字符数组的区别 158 10.5 函数指针变量 159 10.6 指针型函数 160 10.7 指针数组指向指针的指针 161 10.7.1 指针数组的概念 161 10.7.2 指向指针的指针 164 10.7.3 main 函数的参数 166...
  • 但是,算法仅仅给出了一个笼统实现策略,对于具体数据类型、运算操作符及优先级情况、怎样支持函数调用、自定义内存变量如何实现等具体问题并无现成解决方案,需要开发人员自己实际设计相应算法解决,而这也...
  • 1.8.1,break 与 continue 的区别..................................................................................... 28 1.8.2,循环语句的注意点............................................................
  • C++程序员面试宝典

    热门讨论 2013-04-01 13:36:19
    面试题87 const对象的指针const指针的区别 91 面试题88 数组指针与指针数组的区别 92 8.2 函数指针 93 面试题89 什么是函数指针?如何使用函数指针 93 面试题90 指针函数函数指针的区别 95 8.3 this指针 96 面试...
  • TCP socketUDP socket的区别是怎样的 如何用有连接的方式实现聊天室 如何用无连接的方式实现系统广播 如何实现Proxy服务器 如何下载网页 如何在应用程序中映射网络驱动器 如何实现电话拨号上网 如何删除Internet...
  • 变量说明的一般形式为: 类型说明符 变量名标识符,变量名标识符,...; 例如: int a,b,c; (a,b,c为整型变量) long x,y; (x,y为长整型变量) unsigned p,q; (p,q为无符号整型变量) 在书写变量说明时,应注意以下几点...
  • 代码语法错误分析工具pclint8.0

    热门讨论 2010-06-29 07:00:09
    注意到我Run一栏的参数和上面提示一样,其实我其他古怪参数都放到c:\lint\s td.lnt中了。请注意,不论你怎样配置参数一定不要忘记了将si-env.lnt包含在你配置 文件里,否则就无法进行错误信息程序...
  • Visual Studio程序员箴言--详细书签版

    热门讨论 2012-10-16 20:37:39
    CruiseYoung提供的带有详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 Visual Studio程序员箴言 原书名: Microsoft Visual Studio Tips 原出版社: Microsoft Press 作者: (美)...
  • 接口类问题(B类)-指设计、编码中出现函数环境、其他函数、全局/局部变量或数据变量之间数据/控制传输匹配问题,在系统中起重要作用,将导致模块间配合失效等严重问题; 维护类问题(C类)-指设计、...
  • C++MFC教程

    热门讨论 2013-05-21 13:37:15
    5、记住一些常用的消息名称和参数的意义。 6、学会看别人的代码。 7、多看书,少买书,买书前一定要慎重。 8、闲下来的时候就看参考书。 9、多来我的主页。^O^ 后面几条是我个人的一点意见,你可以根据需要自身的...
  • CruiseYoung提供的带有详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订) 基本...
  • asp.net知识库

    2015-06-18 08:45:45
    C#中 const readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base...
  •  注意: 如果不带任何参数,fixboot 命令将向用户登录系统分区写入新分区引导扇区。  Fixmbr  修复启动磁盘 主启动记录。fixmbr 命令仅在使用故障恢复控制台时才可用。  fixmbr [ device_name]  参数 ...
  • C语言深度揭秘

    2012-04-12 13:21:16
    1.16.2,枚举与#define宏的区别..........................43 1.17,伟大的缝纫师----typedef关键字....................... 44 1.17.1,关于马甲的笑话.......................................44 1.17.2,历史的...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

一般变量和不带参数的宏的区别