有关宏定义一题

1、问题描述

用预处理指令 #define 声明一个常数,用以表明1年中有多少秒。

2、答案

#define SECONDS_PER_YEAR (365*24*60*60UL)

3、析

1)#define 不能以分号结束,注意添加括号

2)预处理器将计算常数表达式的值,写出如何计算比直接写出计算后的值要有意义

3)这个表达式的值已经超出了16位二进制能表达的范围,最好添加UL,告诉编译器这个常数这是个大整数

时间: 2024-12-15 08:35:38

有关宏定义一题的相关文章

编程题:带参数的宏定义来实现,求圆的周长和面积。

#include<stdio.h> #define PI 3.14159 #define L(r) 2*PI*(r) #define S(r) PI*(r)*(r) void main() { float radius,circle,area; scanf("%f",&radius); circle=L(radius); area=S(radius); printf("radius:%f\tcircle:%f\tarea:%f\n", radiu

编程题:宏定义实现,输入名字与学号,并输出。

#include<stdio.h> #define IN scanf #define OUT printf #define N 2 void main() { int i; char name[N][20]; long num[N]; OUT("Please input name and ID:\n"); for(i=0;i<N;i++) {   IN("%s",name[i]); IN("%ld",&num[i]);}

ytu 1059: 判别该年份是否闰年(水题,宏定义)

1059: 判别该年份是否闰年Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 222  Solved: 139[Submit][Status][Web Board] Description 给年份year,定义一个宏,以判别该年份是否闰年.提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串) Input 一个年份 Output 根据是否闰年输出,是输出"L",否输

ytu 1061: 从三个数中找出最大的数(水题,模板函数练习 + 宏定义练习)

1061: 从三个数中找出最大的数Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 124[Submit][Status][Web Board] Description 定义一个带参的宏(或者模板函数),从三个数中找出最大的数. Input 3个短整型数,空格隔开 3个实数,空格隔开 3个长整数,空格隔开 Output 最大的数,对于实数保留2位小数. Sample Input 1 2 3 1.5 4.7 3.2 123456

[转载]c语言宏定义

一. #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1   #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为

C语言:带参数的宏定义

宏名的命名规范 1.全部大写有多个单词中间使用下划线隔开(常用) 2.以k开头的驼峰标识(不常用) 带参数的宏定义:把出现宏名地方都会把宏名后面小括号中的参数代入到宏后面的表达式中,然后进行替换 格式:#define 宏名(参数列表)  表达式 注意点:1.参数列表中没有类型 2.宏名与括号之间一定不要加空格 带参数的宏与函数的区别 1.函数有一个调用过程,会开辟新存储空间,需要花费一些开销的 2.宏仅仅是做一个替换的操作 使用场景: 1.当计算比较简单,参数比较少的时候使用宏,宏提高运算效率

头文件的宏定义#ifndef测试

一.入题 在头文件的书写中,都加入了如下内容: #ifndef __头文件名_H #define __头文件名_H #endif 曾经在书中看到的解释是"防止重复定义",今天突然想到为什么是这样的解释. 二.测试 测试文件共三个,两个头文件:head1.h.head2.h,一个C源程序:program.c. 1.头文件没有宏定义的代码实验 ① 测试代码 head1.h unsigned char global[] = "hello world!"; head2.h

[转]C++宏定义详解

一.#define的基本用法     #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1   #define的概念     #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符

C++宏定义详解

一.#define的基本用法     #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利. 1 #define命令剖析 1.1   #define的概念     #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符