当前位置:首页 > 数码 >

整型常量要用逗号隔开吗(长整型常量后面要跟什么字母)

来源:原点资讯(www.yd166.com)时间:2024-04-26 12:02:21作者:YD166手机阅读>>

整型常量要用逗号隔开吗,长整型常量后面要跟什么字母(1)

1、#define宏定义

以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定义一个宏,程序在预处理阶段将用define定义的来内容进行了替换。因此在程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。define定义的常量,预处理时只是直接进行了替换,,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。,因此在编译时它不对宏的定义进行检查,作用域不影响对常量的访问 。它的常量值只能是字符串或数字。 该命令有两种格式:一种是简单的常量宏定义, 另一种是带参数的宏定义。

整型常量要用逗号隔开吗,长整型常量后面要跟什么字母(2)

不带参数的宏:#define< 名字 >< 值 > 要注意,没有结尾的分号,因为不是C的语句,名字必须是一个单词,值可以是各种东西,宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。如有错误,只能在编译已被宏展开后的源程序时发现。

注意.宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。宏定义其作用域为宏定义命令起到源程序结束。如要终止其作用域可使用#undef命令

带参宏定义的一般形式为:#define 宏名(形参表)字符串,也是没有结尾的分号,可以带多个参数 ,#define NB(a,b)((a)>(b)?(b):(a)), 也可以组合(嵌套)使用其他宏,注意 带参数宏的原则 一切都要有括号,参数出现的每个地方都要有括号。带参数的宏在大型的程序的代码中使用非常普遍,在#和##这两个运算符的帮助下可以很复杂,如“产生函数”,但是有些宏会被inline函数代替(C 的函数)

使用宏好处:提高运行效。

定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。在简单的程序使用带参数的宏定义可完成函数调用的功能,又能减少系统开销,提高运行效率。正如C语言中所讲,函数的使用可以使程序更加模块化,便于组织,而且可重复利用。

“方便程序的修改”。使用宏定义可以用宏代替一个在程序中经常使用的常量。注意,是“经常”使用的。这样,当需要改变这个常量的值时,就不需要对整个程序一个一个进行修改,只需修改宏定义中的常量即可。且当常量比较长时,使用宏就可以用较短的有意义的标识符来代替它,这样编程的时候就会更方便,不容易出错。因此,宏定义的优点就是方便和易于维护。

//例子:/求球的体积​​​​

#include<stdio.h>

#include<math.h>

//对于半径为 r 的球,其体积的计算公式为 V =4/3*Π*r^3

//这里取Π为3.14

//这里给定r的值,求V

#define PI 3.14

int main(void) {

double r;

scanf("%lf", &r);

double sum = 0;

sum = (4.0 / 3.0) * PI*pow(r, 3);//这里用PI替换掉了 3.14

printf("%f.2", sum);

}

#include<stdio.h>//合例子:输入数字查看是星期几

int main(void) {

enum week {Mon = 1, Tue, Wed, Thu, Fri, Sat, Sun}today;

//在这里我们给Mon赋值了一,后面Tue以后的都相应加一赋值

scanf("%d", &today);

switch (today) {

case Mon: puts("Monday"); break;

case Tue: puts("Tuesday"); break;

case Wed: puts("Wednesday"); break;

case Thu: puts("Thursday"); break;

case Fri: puts("Friday"); break;

case Sat: puts("Saturday"); break;

case Sun: puts("Sunday"); break;

default: puts("no day");

}

return 0;

}

2、enum枚举

枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。它是一种用户定义的数据类型,它用关键字enum以如下语法来声明,:enum 枚举类型名字,{名字0,...,名字n};第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1 (当然这个是可以自定义成员值的)

整型常量要用逗号隔开吗,长整型常量后面要跟什么字母(3)

枚举类型名字通常并不真的使用,要用的是在它大括号里边的名字,因为它们就是常量符号,它们的类型是int,值则是依次从零到n,如 enum week { Monday,Tuoesday,Wedenday}; 就创建了三个常量,Monday的值是0,Tuoesday是1,Wedenday是2,当需要一些可以可以排列起来的常量值的时候,定义枚举的意义就是给了这些常量名字。虽然枚举类型可以当类型使用,但是实际上并不常用,但是如果是有意是排比名字,用枚举比宏定义方便,枚举比用好些,因为枚举有int类型,在C 语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理的,既然枚举也是一种数据类型,所以它和基本数据类型一样也可以对变量进行声明,枚举也可以用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明

注意:

1、同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名常量

2、枚举成员)是常量而不是变量,这个一定要搞清楚,因为枚举成员的是常量,所以不能对它们赋值,只能将它们的值赋给其他的变量

3、枚举类型的定义和变量的声明分开:如果对枚举型的变量赋整数值时,需要进行类型转换

enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };//枚举常量的值是可以在这里进行自定义的 MON=1​

//基本数据类型的赋值 :

int a, b, c;

a = 1;

b = 2;

c = 3;

//使用枚举赋值 :

enum DAY yesterday, today, tomorrow;//枚举定义变量

yesterday = MON;

today = TUE;

tomorrow = WED;

​// today = (enum DAY) (yesterday 1);//强制类型转换

// tomorrow = (enum DAY) 30;

//强制类型转换//tomorrow = 3; //错误

枚举在用switch-case结构中使用非常方便.

//综合例子:输入数字查看是星期几​

#include <stdio.h>//枚举是define的代替 它是一个集合 //和switch连用很方便

int main() {

enum week { Mon = 1,Tues, Wed, Thurs, Fri, Sat, Sun } day; //day可放到这

//enum week day;定义

scanf("%d", &day);

switch (day) {

case Mon: puts("Monday"); break;//1 puts代替printf输出字符串

case Tues: puts("Tuesday"); break;// 2

case Wed: puts("Wednesday"); break;// 3

case Thurs: puts("Thursday"); break;// 4

case Fri: puts("Friday"); break;// 5

case Sat: puts("Saturday"); break;// 6

case Sun: puts("Sunday"); break;// 7

default: puts("Error!");

}

return 0;

}

枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值,其中一个枚举常量的占的字节数为4个字节,恰好和int类型的变量占的字节数相同。

你学会了嘛?

对啦对啦!另外的话为了帮助大家,轻松,高效学习C语言/C ,我给大家分享我收集的资源,从最零基础开始的教程到C语言项目案例,帮助大家在学习C语言的道路上披荆斩棘!可以来我粉丝群领取哦~

编程学习书籍分享:

整型常量要用逗号隔开吗,长整型常量后面要跟什么字母(4)

编程学习视频分享:

整型常量要用逗号隔开吗,长整型常量后面要跟什么字母(5)

整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)最重要的是你可以在群里面交流提问编程问题哦!

对于C/C 感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C 的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!

,

栏目热文

常量中有换行符解决方法(c语言常量中有换行符怎么解决)

常量中有换行符解决方法(c语言常量中有换行符怎么解决)

【分享成果,随喜正能量】千淘万漉虽辛苦,吹尽狂沙始到金。无人问津的日子里,定心,静心,做好自己的事,一切烦躁焦虑都烟消云...

2024-04-26 12:04:03查看全文 >>

常量字符串为什么不能修改(字符型常量和字符串常量如何使用)

常量字符串为什么不能修改(字符型常量和字符串常量如何使用)

哈喽,我是子牙,一个很卷的硬核男人深入研究计算机底层、Windows内核、Linux内核、Hotspot源码……聚焦做那...

2024-04-26 12:23:53查看全文 >>

怎么解决字符常量中的字符过多(字符常量合法的条件)

怎么解决字符常量中的字符过多(字符常量合法的条件)

一、字符串1、基本特性2、JDK9中String变化二、String的内存分配三、字符串拼接操作3.1、案例分析3.2、...

2024-04-26 12:29:31查看全文 >>

怎样正确判断字符常量(字符型常量怎样算合法)

怎样正确判断字符常量(字符型常量怎样算合法)

本文我们将分享介绍一道关于java的“字符串面试题~代码实现题”,主要实现的功能“查找特定的字符串单词word在一个长长...

2024-04-26 12:49:28查看全文 >>

四级成绩查询共多长时间(四级成绩查询时间有截止日期吗)

四级成绩查询共多长时间(四级成绩查询时间有截止日期吗)

2023年下半年全国大学英语四、六级考试(CET)成绩查询服务将于2024年2月27日上午6时开通。来“中国教育发布”客...

2024-04-26 12:36:29查看全文 >>

字符常量过多怎么解决(常见的字符常量怎么判断)

字符常量过多怎么解决(常见的字符常量怎么判断)

作为一个面向对象的编程语言,Java提供了自动的内存管理机制,这也成为了很多面试官最喜欢问的问题。从内存管理的角度来谈谈...

2024-04-26 12:49:02查看全文 >>

为什么不能用符型常量(字符型常量与符号常量区别)

为什么不能用符型常量(字符型常量与符号常量区别)

先初步了解引用、指针的一些注意事项。引用并非对象引用必须初始化引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果...

2024-04-26 12:15:46查看全文 >>

常量字符串为什么不能改变(字符串常量正确表示方法)

常量字符串为什么不能改变(字符串常量正确表示方法)

我们在学习java基础时,都知道java源码类String是final类代表字符串,是字符串常量,根据常量的定义,一旦定...

2024-04-26 12:19:53查看全文 >>

未结束的字符串常量怎么回事(字符串常量前的限定怎么解决)

未结束的字符串常量怎么回事(字符串常量前的限定怎么解决)

上文我们说了常量包括:1. 数值型常量,2. 字符型常量,3. 符号常量,我们知道了数值型常量包括整型常量,其中我们了解...

2024-04-26 12:38:13查看全文 >>

文档排行