typedef和#define的作用域问题
#include <iostream>using namespace std;class A
{
#define MAX 5 // 宏定义是全局的,因为在预编译时就替换掉了public:typedef unsigned long ULONG; // 作用域局限在这个类中, 且有修饰符private:int _n;ULONG _age;public:A(int n, ULONG age);void display();
};A::A(int n, ULONG age)
{_n = n;_age = age;
}void A::display()
{cout << _n << endl;cout << _age << endl;cout << MAX << endl;
}int main()
{
// typedef unsigned long ULONG; // 作用域在main()中A::ULONG na; // na的类型是A::ULONG, 并非ULONGA a(3, 20);a.display();cout << MAX << endl;na = 25;cout << na << endl;return 0;
}/*运行情况:D:\Desktop\test>makeg++ -o a.exe a2.cppD:\Desktop\test>a3205525
*/
typedef和#define的作用域问题相关推荐
- typedef和define的作用域
typedef: 如果放在所有函数之外,它的作用域就是从它定义开始直到文件尾: 如果放在某个函数内,定义域就是从定义开始直到该函数结尾: #define: 不管是在某个函数内,还是在所有函数之外,作用 ...
- typedef和define具体的详细区别
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如: #define PI 3.141 ...
- typedef和define的详细区别
typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字. #define是预处理指令. 1. 首先,二者执行时间不同 关键字typede ...
- c语言错误c4430,C 语言 typedef 与 #define 比较
Alvin typedef 与 #define 的区别 1. 执行时间不同 关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能. #define 则是宏定 ...
- C语言-typedef与#define的区别
目录 1 typedef 1.1 将复杂的声明简单化 1.2 定义平台无关的类型 1.3 与struct的结合使用 1.4 typedef使用公式 2 typedef与#define的区别 2.1 执 ...
- typedef和define一些问题
1. 四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针 ...
- C语言 typedef 和 define 区别 - C语言零基础入门教程
目录 一.typedef 简介 1.typedef 简化复杂的类型声明 A.定义普通变量 B.定义函数指针 C.定义结构体 2.定义与平台无关的类型 二.define 简介 三.typedef 和 d ...
- C++中typedef和define的区别
typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...
- typedef与#define宏区别
先让我们了解一下typedef的功能,typedef简单来说就是给类型取一个别名: 如 typedef int New 那么int就有一个别名叫New了,以后size就和int这个类型一共用法了. ...
最新文章
- php 小技巧总结,PHP学习的技巧是什么 PHP学习的技巧和学习的要素总结
- NR 5G NG-RAN 架 构
- 1.2 数学符号-深度学习第五课《序列模型》-Stanford吴恩达教授
- 如何用“区块链+稳定币”技术来提升资产证券化市场运作效率
- JavaScript --- [学习笔记]观察者模式 理解对象 工厂模式 构造函数模式
- python获取手机通知栏消息_Python编写简单的通知栏脚本启动工具
- 数据结构2 - 线性表
- 智能会议系统(35)---深入浅出sip协议
- mysql fulltext类型_mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的详细介绍(转)
- Linux之dd命令使用
- SQL语句学习指南 - 教程书籍
- 华为IPD你学不会(转)
- 解决win10删除文件时找不到该项目的问题
- 修改最新版谷歌浏览器编码方式
- hive删除EXTERNAL外表
- 苹果开发者账号个人级升级为公司级
- [水晶报表]如何设置水晶报表(crystal reports)的字段自动换行
- 安卓 sdk 离线包_百度离线ocr识别开发sdk包
- 数学建模overleaf模板_数学建模从入门到精通必备资料,大神经验助你赢战9月数模国赛!...
- oracle 审计设置,oracle数据库审计设置
热门文章
- dataguru北京线下沙龙-第二部 《Oracle 索引优化思路--案例分享 -- 刘盛》
- Linux PCI网卡驱动分析
- 因果关系和相关关系 大数据_数据科学中的相关性与因果关系
- bigquery 教程_bigquery挑战实验室教程从数据中获取见解
- 1859. 将句子排序
- Java 到底有没有析构函数呢?
- leetcode1343. 大小为 K 且平均值大于等于阈值的子数组数目(队列)
- bi可视化工具_适用于您的BI解决方案的最佳数据可视化和Web报告工具
- android-开源项目_我如何摆脱对开源的恐惧,并开始了自己的项目-以及如何做到。...
- cake php_如何(以及为什么)在Swinject中使用Cake Pattern