C语言学习日记9.11——基本数据类型、进制、部分宏!

中秋之后,要渐渐回归学习的生活啦!

今天学习了很多知识,不过理论居多,没什么好实操把代码打出来的。

先从宏说起吧!


一、宏(部分)

比如这个:

#define width 80                      //我们先定义一个“width”,再定义一个“length”

#define lenth2 width + 40        //显然,宏的套用也是可以的,但是引用时要注意不要出问题,下面有例子

printf("%d", length * 2);            //此时,打印出来的是什么呢?240?我们展开来看,其实是80+40*2,其实是160!

因此,我们定义宏的时候要规范。

比如 #define length (width + 40)


在看这个宏:

#define plus(a,b) ((a)+(b))       //可见,宏里面也是可以带运算的,而暂时定义的公式里不用带类型(与函数区分)

同样也要注意规范。


还学了这个:

typedef unsigned max_t         //其中,typedef的作用是令 max_t(我创建的别名)的作用等于 unsigned,说白了就是起别名。


最后是这个:#ifdef  XXXX      //我们知道,程序里普通的if……else,会先把里面的内容预处理,再显示 if 或 else ,占用很大

                     #else                  //然而,我们用 #ifdef 就很好了,他只会处理 if 的内容。

                     #endif                 // #ifdef 是如果后面的XXXX定义过了,就执行 #ifdef,否则就执行 #else

当然 #if 效果也一样,只不过判定就和普通 if 一样。


二、进制

当我们想在计算机里输入,八进制或十六进制的数时,应当这样:

例:十进制 —— 12

       八进制 —— 014(前面加个0) 

   十六进制 —— 0xC  (前面加0x)(字母不区分大小写)

进制的转换就不记啦,VB里面学过,8421罢了


三、基本数据类型

我们来看下面三组例子:

#define VA 1300U       //U代表unsigned

#define VB 1500L       //L代表long

#define VC 1800LU    //LU代表unsigned long

在定义数字常量的时候,我们可以在后面加上字母U或L,当然,也可以什么都不加。

注:无后缀的十进制常量:int——》long——》unsigned long

       无后缀的八、十六进制常量:int——》unsigned——》long——》unsigned long

       带U后缀的常量:unsigned——》unsigned long

       带L后缀的常量:long——》unsigned long

       带L和U后缀的常量:unsigned long

另外,我们还可以通过 sizeof() 函数来查看某变量占的大小。(不同编译器都有自己的规定)

在编译器中,大小是这样的 sizeof(short) <= sizeof(int) <= sizeof(long) .

注意,是可以等于的。


后记:趁今天有时间,赶紧多写点。明天我们出去团建,可能就没时间了。

那么今天就到这里啦!感谢大家的观看!

代码已上传至码云。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容