当前位置:首页 > 教育培训 >

c语言难不难学(数据结构c语言版难不难学)

来源:原点资讯(www.yd166.com)时间:2023-06-20 02:41:54作者:YD166手机阅读>>

宏与 const 变量

如果想定义一个非常简单的常量值,你有两种选择:

static const int my_constant = 5;// 或者#define MY_CONSTANT 5

二者的不同之处在于,前者是一个真正的变量,而后者是一个复制粘贴的行内表达式。

  • 宏:与变量不同,你可以在需要“常量表达式”的上下文中使用宏,例如数组长度或 switch 语句

  • 变量:与宏不同,你可以获得指向变量的指针。

“常量表达式”实际上非常实用,因此常常被定义为宏。而变量则更适合更大或更复杂的值,如结构实例。

c语言难不难学,数据结构c语言版难不难学(13)

宏与内联函数

宏可以有参数,并扩展为 C 代码。

相较于函数,宏的优势在于:

  • 宏产生的代码相当于直接粘贴到周围的代码中,而不像函数需要一个调用指令。这样代码的运行速度更快,因为函数调用需要额外的开销;

  • 宏不需要规定类型。例如,任何数字类型都可以执行 x y 运算。如果写成函数,就必须声明参数,并指定类型,比如类型大小、是否有符号,因此使用很有限。

缺点:

  • 参数需要反复计算。假设我们有一个宏 MY_MACRO(x),如果定义中多次使用 x,那么表达式 x 将被反复计算,因为它只是简单地复制和粘贴。而相比之下,函数的参数表达式只需要计算一次,然后将结果传递给函数。

  • 宏更容易出错,因为它们是源代码级别。尽可能多使用括号,将宏的整个定义和每个参数都放到括号内,这样表达式就不会不小心被合并。

// 不推荐这种写法:#define MY_MACRO(x) x x// 应该写成:#define MY_MACRO(x) ((x) (x))

除非你需要多种泛型,否则可以直接定义静态内联函数(static inline function),这样就可以兼具二者的优点。内联表示,函数中的代码应该直接编译到使用的地方,而不是被调用。你可以将静态内联函数放在头文件中,就像宏一样。

栏目热文

c语言中关键字代表什么(c语言关键字及其含义举例)

c语言中关键字代表什么(c语言关键字及其含义举例)

任何事物都需要一个名字,名字在计算机里叫标识符,标识符是有命名规范的:1、标识符由字母(A-Z,a-z)、数字(0-9)...

2023-06-20 02:59:33查看全文 >>

c语言命令大全(c语言指令命令大全)

c语言命令大全(c语言指令命令大全)

C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境...

2023-06-20 02:31:31查看全文 >>

大一c语言容易挂科吗(大一c语言怎么才能不挂科)

大一c语言容易挂科吗(大一c语言怎么才能不挂科)

在大学阶段每学期都是需要进行期末考试,每门专业课的成绩都需要达到及格线以上。如果成绩不合格的话就会被挂科,大学正常的挂科...

2023-06-20 03:03:10查看全文 >>

c语言中的32个关键字通俗含义(c语言关键字详细解释)

c语言中的32个关键字通俗含义(c语言关键字详细解释)

auto 局部变量(自动储存) break无条件退出程序最内层循环 case switch语句中选择项 char单字...

2023-06-20 02:37:56查看全文 >>

c语言关键词详细解释(40节免费编程课)

c语言关键词详细解释(40节免费编程课)

保留字(reserved word) 保留字又称关键字。 指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或...

2023-06-20 02:34:31查看全文 >>

c语言关键字翻译(c语言关键字中英文翻译器代码)

c语言关键字翻译(c语言关键字中英文翻译器代码)

在文章 和 中对关键const和static详细讲解,这一节将继续讲解关键字register&extern。通过...

2023-06-20 02:56:08查看全文 >>

c语言中关键字有多少(c语言一共有多少个关键字)

c语言中关键字有多少(c语言一共有多少个关键字)

喜欢的可以收藏转发加关注谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能...

2023-06-20 03:15:38查看全文 >>

c语言中int是什么意思(c语言里面的int是什么意思)

c语言中int是什么意思(c语言里面的int是什么意思)

C语言中有没有见过(int [2]){19,20}或者int (*pt2)[4]的使用方法,字面上可能不好理解,这是C9...

2023-06-20 02:42:30查看全文 >>

c语言关键字37个及其含义(c语言关键字及其含义举例)

c语言关键字37个及其含义(c语言关键字及其含义举例)

这次跟大家分享的,是关于C语言里面常用的16个关键字。通通给你们整理出来了~赶紧拿小本本记下来~!下次发布剩下的~量不在...

2023-06-20 02:44:29查看全文 >>

c语言空字符(c语言怎么使字符串为空)

c语言空字符(c语言怎么使字符串为空)

C语言中是没有字符串这个变量类型的,但是我们可以把字符串存储在char数组中,这个数组的最后一位是字符\0,即空字符,A...

2023-06-20 02:54:43查看全文 >>

文档排行