BSP学习Day11 C语言基础 宏定义和宏函数 函数调用 类型转换 数组

目录

1.宏函数和宏定义

2.条件编译

 3.类型转换

 4.数组


1.宏函数和宏定义

(1)宏定义

宏函数的本质是对源文件进行替换

先声明一个宏,然后再main函数中使用该宏

#define MAX 100

int main()
{
    printf("%d", MAX);
}

(2). 宏函数 

宏函数的本质还是源文件替换,但是可以传递参数

如下的函数是个比较大小的宏函数

#define MAX(a, b) a > b ? a : b
int main()
{
    int max = MAX(1, 3);
}

2.条件编译

/*如果没有包含stdio.h,就定义这个宏,这样避免重复引入头文件*/

#ifndef_ STDIO H_

#define_ STDIO_ H_

//头文件中可以放变量和函数的声明

#endif

条件编译的三种形式

 

其中标识符为宏名,该宏名在此前可以定义,也可以没有定义,程序段1和程序段2是由语句或预处理命令组成的程序序列。

该种格式的功能:如果标识符已被#define命令定义过,则对程序段1进行编译,否则对程序段2进行编译。如果没有程序2,本格式中的#else可以没有,可以写为:

 

 

 3.类型转换

不同类型数据间进行混合运算,如果两个数据类型不同,则先自动进行类型转换,使二者具有同一种类型,然后进行运算。|

(1)整型、实型、字符型混合运算规律

1.+、、*、/运算的两个数中有一个为float或double型, 结果就是double型。因为系统是将float型先转换为double进行运算。

2.如果int型与float或double型数据进行运算,先把int型和float型转为double型,然后运算,结果是double型。

3.字符型与整型数据进行运算,实际用字符ASCII码值与整型进行运算,如果与实型运算,方法同2

4.整型有符号转为无符号后,再进行运算。

【以上均有编译系统自动完成】

简而言之:转向数据长度增长的方向

 (2)强制类型转换和赋值转换

语法格式

==(类型名) (表达式) ==

char a=10;        //定义char类型

int b;                 //定义int类型

b=(int)a;           //char类型的变量a,强制类型转换为int后,赋值给b

 

 4.数组

定义:一组有序且同类型数据集合的数据结构

-般形式:类型符数组名[常量表达式]

注意:数组名符合标识符规则

        数组长度必须确定,即个数确定

        常量表达式不能是变量(不确定的值)

        数组中的第一个元素的下标总是0;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕容离875

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值