这只是我制作的一个简单程序。不知道为什么它不起作用,也许你们可以提供帮助。
提前致谢。
main.c:
#include <stdio.h>
#include <stdlib.h>
#include "HuntersInfo.h"
int main()
{
int girlsAge = (AGE / 2) + 7;
printf("%s can date girls who are %d or older.\n", MYNAME, girlsAge);
return 0;
}
HuntersInfo.h:
#define MYNAME "Hunter Shutt"
#define AGE "14"
答案 0 :(得分:2)
预处理器运行后,您将离开:
int main()
{
int girlsAge = ("14" / 2) + 7;
printf("%s can date girls who are %d or older.\n", "Hunter Shutt", girlsAge);
return 0;
}
如您所见,"14"
是一个字符串,而不是数字。
#define AGE 14
会修复它,但您更好地使用变量而不是无类型定义,因为您将获得更多有用的错误和警告:
static const char* MYNAME = "Hunter Shutt";
static const int AGE = 14;
答案 1 :(得分:1)
变化
#define AGE "14"
到
#define AGE 14
它不起作用,因为你正在对字符串进行分割。
答案 2 :(得分:0)
您正在使用字符串进行一些数学运算(您将年龄设置为“14”)。改变线
#define AGE "14"
至
#define AGE 14
#define
几乎告诉编译器每次看到它之后的任何符号(在本例中为AGE)与之后的符号(你已经将它设置为“14”)。