llgd.net
当前位置:首页 >> C语言通过宏定义一个常量为什么要加UL >>

C语言通过宏定义一个常量为什么要加UL

UL后缀表示无符号长整数,相当于定义为unsigned long

1、尽量用const和inline而不用#define 这个条款最好称为:“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分。这是问题之一。 2、再看下面的语句: #define ASPECT_RATIO 1.653 编译器会永远也看不到ASPECT_RATIO这个...

因为宏是一个简单替换,所以c语言中用宏定义一个字符常量(一个字母)可以赋值给字符变量。实质是在编译之前会把宏替换掉,然后再编译。 例如: #define A 5void main(){ int num=A;}在编译之前A已经被替换成5了,所以就可以赋值给num。

#define DI_INPUT_NUM 11+2 int a = DI_INPUT_NUM * 3 那么a = 11+2 *3 = 11+6 =17 #define DI_INPUT_NUM (11+2) int a = DI_INPUT_NUM * 3 那么 a =(11+2)*3 = 13*3=39 上面2中情况可以看到第二种才是宏定义的本意。 所以习惯性会加个括号,其...

对的! 专家的推荐是这样的: 1,对于数值和字符常量,用#define,注意添加必要注释; 2,对于其它类型常量,用 const 限定符。 const 和 #define 的区别在于 1、const 像变量一样有范围(作用域)、可见性等限制,一般来说好一点; 2、define常...

1、因为宏定义实质是一种替换,虽然看起来是字符,实际上最终是被替换成其他常熟或者值。 2、宏定义中的标识符都采用大写,这是编程中一种约定俗成的习惯: 1)宏替换不做语法检查,所以在使用的时候要格外小心 2)宏替换通常在文件开头部分,写...

比如说后面代码要用到10这个数字时,就可以用N来代替,这是一个。 另外在调试或者代码要修改时,比如你觉得10不行,用到的地方要改为11,那么就不用在代码里一个一个找了,只要修改宏定义里面的N值就行了,这个减少代码复杂程度。 还有就是在程...

整数后加L表示该整数为长整型,即long ##这是合并操作符, 合并操作符##将出现在其左右的字符序列合并成一个标识符,例如: #define CLASS_NAME(name) class##name #define MERGE(x,y) x##y##x 则宏引用: CLASS_NAME(systimer) MERGE(me,to) 将分别...

加括号是为了处理表达式参数(即宏的参数可能是个算法表达式)时不出错,因为宏替换就是文本替换,所以如果有以下情况: #define COM(A,B) (A)*(B) 那么COM(6+5,3)这个调用会怎么替换呢?它会换成这样: (6+5)*(3) 显然这是和COM宏的意图一致的,...

可以对一些常见的变量,字符串等,进行宏定义,系统在编译期间,就会自动替换 如果不进行宏定义,一般如果此类变量,字符串等,需要修改,就需要对源文件中它们出现的地方一一修改,效率比较低,而此种宏定义后,只需要修改一次,实现批量修改,效率较高.而且...

网站首页 | 网站地图
All rights reserved Powered by www.llgd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com