C语言
#include<stdio.h>#define PRICE 30;
void main()
{
int num, total;
num = 10;
total = num*PRICE;
printf("total = %d\n ",total);
}
哪里打错了 没有错误
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/define.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
为什么会这样?
重新编译一下,关掉正在运行的该程序 BngThea 发表于 2018-1-22 12:46
重新编译一下,关掉正在运行的该程序
还是不行
#define PRICE 30;
后面没有分号 宏定义后面是不需要加分号的 加上分号后会提示错误
#include<stdio.h>
#define PRICE 30
void main()
{
int num, total;
num = 10;
total = num*PRICE;
printf("total = %d\n ",total);
}
我运行了 没有错误 hickttye 发表于 2018-1-22 12:26
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/ ...
你把你项目的属性->链接器->系统->子系统选项设置为控制台(console).
你创建的项目这项属性应该是窗口(Windows)的 7楼8楼正解(关掉正在运行的程序),九楼不清楚{:10_302:} 必填的用户名 发表于 2018-1-22 16:32
7楼8楼正解(关掉正在运行的程序),九楼不清楚
WinMain是win32程序的入口,也就是窗口程序。
main是控制台程序入口。 和分号没关系,程序正常运行没问题,你把工作窗口关完了再编辑一次试试 main函数,工程要创建成win32控制台的。
win32控制台程序的入口函数是mian。
win32程序入口函数是winMain。
还有,宏定义后面不要加“;”号,宏定义的本质是替换。编译器再编译的时候会将你引用的宏替换为你定义的内容。是原封不动的替换。
也就是说:
total = num*PRICE;会被替换为total = num*30;;
注意这里会有两个“;”号
页:
[1]