宏不是类型定义
来源:互联网 发布:三层交换机端口配置ip 编辑:程序博客网 时间:2024/05/17 22:57
#include <iostream>#include <iomanip>#include <string>using namespace std;struct CarType{string maker;int year;float price;};//使用这样的宏定义还有着可移植性的优势,所有的C编译器都支持它。#define EXAMPLE1 struct CarType *//很多编译器不支持如下方法typedef struct CarType * EXAMPLE2;int main(){//第一个声明被扩展成 struct CarType *a,b;EXAMPLE1 a,b;EXAMPLE2 c,d;cout<<sizeof(a)<<" "<<sizeof(b)<<endl;cout<<sizeof(c)<<" "<<sizeof(d)<<endl;return 0;}
总结:宏不是类型定义,虽然使用宏定义有可移植性的优势,所有的C编译器都支持,但是在声明多个变量时出现问题.
例如在上面的代码中
EXAMPLE1 a,b;被扩展成struct CarType *a,b;
EXAMPLE2 a,b被扩展成struct CartType *a,*b
综上:宏不是类型定义,只是简单的代换.
1 0
- 宏不是类型定义
- 宏定义,电脑不是人脑
- 宏定义不是语句(2)
- MFC宏和类型定义
- CPU类型和宏定义
- 宏并不是类型定义
- 宏定义函数指针类型
- set_irq_type(),触发类型宏定义
- 类型定义
- 依赖名称不是类型
- 宏定义并不是类型定义(3)
- 宏定义#define和类型定义typedef区别
- 宏定义和枚举类型的区别
- C++ - 内置类型的最大值宏定义
- 宏定义和枚举类型的区别
- ios 验证设备类型的宏定义
- intptr_t 其实不是指针类型
- intptr_t 其实不是指针类型 .
- 震惊的事实--数组与指针不相同?
- 【LeetCode刷题记录】Reverse Integer
- 欢迎使用CSDN-markdown编辑器
- leetcode--4Sum
- ROS 基础: 在同一个节点里订阅和发布消息
- 宏不是类型定义
- linux应用开发-进程同步编程
- 《鸟哥的Linux私房菜》读书笔记:crontab、at命令详解
- ListView Item点击事件跳转详情界面
- 计算器的代码实现
- 一些前端库的收藏
- Linux内核模式
- SOCKET 学习1
- Android高效加载大图、多图解决方案,有效避免程序OOM