美文网首页
C语言学习1-关于宏定义

C语言学习1-关于宏定义

作者: 中大网安菜鸡本人 | 来源:发表于2018-11-23 18:53 被阅读0次

https://blog.csdn.net/freewaywalker/article/details/50035923

#if #ifdef #if defined(x) #endif 种种用法

怎样才能建立在整个类中都恒定的常量呢?别指望const数据成员了,应该用类中的枚举常量来实现。例如

class A

{…

enum { SIZE1 = 100, SIZE2 = 200}; //枚举常量

int array1[SIZE1];

int array2[SIZE2];

};

枚举常量不会占用对象的存储空间,它们在编译时被全部求值。枚举常量的缺点是:它的隐含数据类型是整数,其最大值有限,且不能表示浮点数(如PI=3.14159)。sizeof(A) = 1200;其中枚举部长空间。

#define 比const多的优点在于对类型无要求

const 与#define的比较

 C++ 语言可以用const来定义常量,也可以用 #define来定义常量。但是前者比后者有更多的优点:

(1) const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)。

(2) 有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。

#undef 标识符

用来将前面定义的宏标识符取消定义。

相关文章

  • C语言学习1-关于宏定义

    https://blog.csdn.net/freewaywalker/article/details/50035...

  • 精解C语言预处理命令(三)之“宏”的用法二

    关于C语言带参数的宏定义中的参数 C语言允许宏带有参数。在宏定义中的参数称为“形式参数”,在宏调用中的参数称为“实...

  • C语言学习:C语言宏定义

    学C语言很久了,但还是不敢用宏定义,大神喜欢用宏定义。关于宏定义你又了解多少了,下面我们说一下宏定义。 宏定义的概...

  • C语言宏定义

    1、一般定义 2、条件判断 3、编译时错误信息 4、系统常见自定义宏 5、宏参数的字符串化和宏参数的连接

  • C语言自定义布尔bool类型

    C语言没有布尔类型,可以采用宏定义创建该类型

  • 编程基础

    C语言 #define定义的宏和const定义的常量有什么区别? defined定义宏的指令,程序在预处理阶段将用...

  • C语言 宏定义 swap

    方法1: 方法2: 说明: a^=b;:把a^b结果赋值给a b^=a;:相当于b=b^(a^b)。而b^(a^b...

  • C语言宏定义#define

    姓名:吕彬 学号:1613014035 【嵌牛导读】#define 宏定义是个演技非常高超的替身演员,但也会经常耍...

  • 10.19

    今天的嵌入式课程我们学习了C语言宏定义技巧,也就是我们常说的宏定义。防止一个头文件被重复包含。重新定义一些类型,防...

  • SDWebImage源码解读

    整体架构 按照分组方式,可以分为几组 定义通用宏和方法 SDWebImageCompat: 宏定义和C语言的一些工...

网友评论

      本文标题:C语言学习1-关于宏定义

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