C语言中const和define的区别你了解嘛
目录
- define和const使用
- const和define区别
- 总结
define和const使用
const和define区别
#include <stdio.h> #define A 1 #define B (A+3) // #define C A/B*3 // //const不能重定义,不可以定义两个一样的,而define通过undef取消某个符号的定义,再重新定义 const double PI=3.14; //const double PI=3.145; #define PI2 3.14 #undef PI2 // 取消PI2 的定义 #define PI2 3.145 void main() { // //分析过程 //#define 就是一个简单的替换!!! //C 其实是 A/A+3*3 = 1/1 + 3 * 3 = 1 + 9 = 10 //C 其实是 A/(A+3)*3 = 1/(1+3) * 3 = 1/4 *3 = ? double d1 = 1.0/4 *3 ; // 0.25 * 3 = 0.75 printf("\nc=%.2f", C);// 问 c = ? printf("\nd1=%.2f", d1); getchar(); }
#include <stdio.h> //#define DEBUG void main() { #ifdef DEBUG //如果定义过 DEBUF printf("ok, 调试信息"); #endif #ifndef DEBUG //如果没有定义过 DEBUF printf("hello, 另外的信息"); #endif // printf("%d",n); getchar(); }
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!
相关推荐
-
关于C语言 const 和 define 区别
目录 一.const 使用 1.const 修饰变量 2.const 修饰指针 3.const 修饰在函数名前面当 4.const 修饰在函数名后面 5.const 修饰函数参数 二.define 使用 1.define 定义常量 2.define 定义函数 3.define 定义多行函数 4.define 防止头文件重复包含 三.const 和 define 区别 四.const 优点 一.const 使用 const 是 constant 的缩写,"恒定不变"的意思.被 const
-
C++中const与#define的利弊分析
C++中const与#define的区别如下: 用#define MAX 255定义的常量是没有类型的,所给出的是一个立即数,编译器只是把所定义的常量值与所定义的常量的名字联系起来,define所定义的宏变量在预处理的时候进行替换,在程序中使用到该常量的地方都要进行拷贝替换: 用const float MAX = 255; 定义的常量有类型名字,存放在内存的静态区域中,在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏定义在程序运行过程中所消耗的内存
-
C语言编程技巧 关于const和#define的区别心得
#define ASPECT_RATIO 1.653 编译器会永远也看不到ASPECT_RATIO这个符号名,因为在源码进入编译器之前,它会被预处理程序去掉,于是ASPECT_RATIO不会加入到符号列表中.如果涉及到这个常量的代码在编译时报错,就会很令人费解,因为报错信息指的是1.653,而不是ASPECT_RATIO.如果ASPECT_RATIO不是在你自己写的头文件中定义的,你就会奇怪1.653是从哪里来的,甚至会花时间跟踪下去.这个问题也会出现在符号调试器中,因为同样地,你所写的符号名不
-
C语言中const和define的区别你了解嘛
目录 define和const使用 const和define区别 总结 define和const使用 const和define区别 #include <stdio.h> #define A 1 #define B (A+3) // #define C A/B*3 // //const不能重定义,不可以定义两个一样的,而define通过undef取消某个符号的定义,再重新定义 const double PI=3.14; //const double PI=3.145; #define PI2 3
-
c语言和c++语言中const修饰的变量区别浅析
目录 c: 修饰全局变量: 修饰局部变量: c++: 修饰全局变量: 修饰局部变量: 总结: 在c语言中: 在c++语言中: 总结 c: 修饰全局变量: 用const修饰的全局变量是没有办法直接修改的,间接的修改也是不成功的(语法可以通过,但是编译运行的时候会报错.)(const只要是修饰全局变量,那么就会储存到常量区中,收到常量区的保护.) 修饰局部变量: 但是如果用const修饰局部变量,同样的也是没有办法直接修改的,但是是可以间接修改的. int main() { const int b
-
详解C++中的const关键字及与C语言中const的区别
const对象默认为文件的局部变量,与其他变量不同,除非特别说明,在全局作用域的const变量时定义该对象的文件局部变量.此变量只存在于那个文件中中,不能别其他文件访问.要是const变量能在其他文件中访问,必须显示的指定extern(c中也是) 当你只在定义该const常量的文件中使用该常量时,c++不给你的const常量分配空间--这也是c++的一种优化措施,没有必要浪费内存空间来存储一个常量,此时const int c = 0:相当于#define c 0: 当在当前文件之外使用
-
C语言中const和C++中的const 区别详解
C语言中const和C++中的const 区别详解 C++的const和C语言的#define都可以用来定义常量,二者是有区别的,const是有数据类型的常量,而宏常量没有,编译器可以对前者进行静态类型安全检查,对后者仅是字符替换,没有类型安全检查. 而C语言中的const与C++也有很大的不同,在C语言中用const修饰的变量仍是一个变量,表示这个变量是只读的,不可显示地更改,而在C++中用const修饰过后,就变成常量了.例如下面的代码: const int n=10; int a[n];
-
详解C语言中typedef和#define的用法与区别
目录 一.typedef的用法 二.#define的用法 三.typedef与#define的区别 四.typedef的用途 用途一 用途二 用途三 用途四 五.typedef的陷阱 陷阱一 陷阱二 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,比如: typedef int INT; typedef (int*) pINT; typedef unsigned int uint32_t type
-
详解C语言中return与exit的区别
详解C语言中return与exit的区别 1,exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的.main函数结束时也会隐式地调用exit函数.exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流.关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件.exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程,而return是返回函数值并退出函数 2,return是语言级别的,它
-
C语言中const与指针使用方法总结
C语言中const与指针使用方法总结 在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正.写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长. 总结: * const 值不能改变,指向可改变 const * 值能改变,指向不可改变 const * const 都不能改变 实例代码: #include <stdio.h> int main(int argc, const char * argv[]) { // 1 可改
-
C语言中char*和char[]用法区别分析
本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很大.以下是个人的一些看法,有不正确的地方望指正. 本质上来说,char *s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以: 当char *s = "hello";后,不能使用s[0]='a':语句进行赋值.这是将提示内存不能为"written". 当用char s[]=&q
-
在C#和Java语言中for和foreach的区别详解
for循环和foreach循环的区别 首先在这里声明一点,C#和Java这两种语言很相似,尤其是初学的数据类型那一部分,所以这里写的for和foreach的区别在C#和Java中都适用. 我会在下面分别列出两种语言的for和foreach分别循环打印一个数组,大家可以看看区别 话不多说,直接上代码: //c# //先创建一个数组 int[] arr = new int[3] {99, 11, 22}; //利用for循环打印(可以创建一个变量 i;判断这个i是否小于数组的长度;每次循环i自增1)
-
C语言中%c与%s的区别与划分详解
%c格式对应的是单个字符,%s格式对应的是字符串. 例: char a; char b[20]; scanf("%c",&a); //只能输入一个字符. scanf("%s",b); //可以输入一串不超过20字符的字符串. %c对应类型为char, %s对应类型为char * , 即字符串. 用作输入时, 二者参数都要传char * 型. %c输入函数只会对一个字节空间赋值. 而%s会一直赋值,直到输入中遇到空白字符为止. 用作输出时, %c传char类型
随机推荐
- 深究AngularJS中ng-drag、ng-drop的用法
- VBScript获取CPU使用率的方法
- Linux下VMware workstation的3种使用技巧
- script_tool_for_windows.bat Windows 环境下的 hosts 一键部署脚本
- jQuery学习笔记之Helloworld
- 基于jquery1.4.2的仿flash超炫焦点图播放效果
- Linux Apache Web服务器安全的8种安全设置技巧
- IOS实现图片轮播无限循环效果
- JS实现将数字金额转换为大写人民币汉字的方法
- nginx下的代理服务器80端口被封的解决方案
- PHP文件缓存smarty模板应用实例分析
- PHP使用range协议实现输出文件断点续传代码实例
- Docker 教程之CentOS安装 Docker
- Android使用Sqlite存储数据用法示例
- php的urlencode()URL编码函数浅析
- java文件对话框过滤特定文件类型示例
- js求数组中全部数字可拼接出的最大整数示例代码
- Jquery下:nth-child(an+b)的使用注意
- Java并发之嵌套管程锁死详解
- js获得地址栏?问号后参数的方法