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

来源:百度知道 编辑:UC知道 时间:2024/06/28 11:44:18
C语言
使用DEV-C++编译通不过
,不加括号可以通过。各位试试在你们的编译环境中能编译通过吗?

错误:

10 C:\Dev-Cpp\main.c syntax error before "UL"
在我这加上括号可以编译通过,
不知道是这个宏的问题,还是我编译器的问题?

(这个宏几乎学C的都应该见过吧,尤其是一些面试题里。)

你的意思可能是让(60*60*24*365)的结果转换为UNSIGNED LONG类型的,但是加上括号后就达不到这个效果了,会有语法错误,修改方法是去掉括号。

语法里讲到ul是在“整数常量”部分的, 整数常量后面接ul表示类型。 你这里怎么用的, 单独用在表达式里,打算吧这个当强制类型转换一样用那肯定是没戏