我不知道如何制作头文件。
要使用头文件,只需使用#include
即可引用它。
在您的例子,在你的文件year.c
只需添加:
#include "year.h"
那么很明显,创建具有相应内容的文本文件text.h
。
一个推荐的做法,虽然不是必需的,但是使用头文件“包装器”来防止重复读取头文件(浪费时间重新处理同一文件),这对大型项目是最有利的,复杂的相互依赖性使得多次间接包含相同的头文件变得容易。
例子:
/* year.h - Documentation */
#ifndef YEAR_H
#defined YEAR_H
...
/* header file's 'actual' content */
#define CURRENT_YEAR "2014"
...
#endif
/* ifndef YEAR_H */
当我编译我的源代码使用当年从2014年起打印你好,而无需修改源代码。
有多种方法来实现这一点,我会展示一种这样的方式。在标准C(C89/90,C99或C11)中,编译器(或其预处理器)将自动生成一个包含年份在内的日期的字符串的宏定义__DATE__
。
您可以编写一个函数来解析此字符串以仅返回年份,作为整数值。
#include <string.h>
#include <stdlib.h>
int get_year_compiled(void) {
char* date = __DATE__;
char *year;
year = date + strlen(date) - 4; /* Pointer arithmetic for fun and profit */
return atoi(year);
}
有没有一种方法,使返回YEAR + 1的功能?
这可以很容易地完成作为前一个问题的扩展。
荣获@ Andrew-Medico首次提及__DATE__
。
我想你要找的是:将'YEAR'定义为整数而不是字符串,然后你可以使用'+'运算符:'#define YEAR 2013'。在'printf()'你应该做'printf(“你好从%d”,YEAR + 1);'因为它不再是一个字符串字面值,你可以连接 – Jack 2014-10-30 17:24:08
如果你想嵌入日期/年源代码已编译,请查看标准'__DATE__'宏(https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html)。 – 2014-10-30 17:30:09
我想要打印2014年,而不是年+ 1,对不起 – 2014-10-30 17:40:24