#define及预编译、编译阶段、运行阶段涉及知识小小结

本文总结了C/C++中的宏定义,包括无参数和有参数的宏,以及#define与const在C++中的差异。同时探讨了在C语言中#define与typedef的区别,指出typedef仅用于数据类型。此外,还介绍了动态库和静态库的基本概念,如Windows环境下动态库的dll和lib文件的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

宏定义

只在宏定义的文件中起作用,“宏”分为:无参数的宏和有参数的宏

说明:

1) 宏名一般用大写以便于与变量区别

2) 字符串可以是常数、表达式等

3) 宏定义不作语法检查,只有在编译被宏展开后的源程序才会报错

4) 宏定义不是C语言,不在行末加分号

5) 宏名有效范围为从定义到本源文件结束

6) 可以用#undef命令终止宏定义的作用域

7) 在宏定义中可以引用已定义的宏名

 

C++中 #define & const

 C++中的const常量类似于宏定义
       const int c = 5;                 ≈                   #define c 5
C++中的const常量与宏定义不同
        const常量是由编译器处理的,提供类型检查和作用域检查
         宏定义由预处理器处理,单纯的文本替换

C语言中 #define & typedef

  1. #define发生在预处理,typedef发生在编译阶段
  2. 与#define不同,typedef仅限于数据类型,而不是能是表达式或具体的值

 

动态库、静态库

  windows 动态库是dll文件和lib文件组合。

  xxx.lib:编译代码时,需要链接此文件

  xxx.dll:运行程序时,需要链接此文件

  当发现windows动态库没有lib文件生成时候,需要在动态库中每个函数头部添加头衔。__declspec(dllexport)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值