hickttye 发表于 2018-1-22 12:16:25

C语言

#include<stdio.h>

#define PRICE 30;

void main()
{
      int num, total;
          num = 10;
          total = num*PRICE;
          printf("total = %d\n ",total);
}




哪里打错了

BngThea 发表于 2018-1-22 12:18:53

没有错误

hickttye 发表于 2018-1-22 12:26:15


Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/define.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

hickttye 发表于 2018-1-22 12:27:04

为什么会这样?

BngThea 发表于 2018-1-22 12:46:59

重新编译一下,关掉正在运行的该程序

hickttye 发表于 2018-1-22 13:13:13

BngThea 发表于 2018-1-22 12:46
重新编译一下,关掉正在运行的该程序

还是不行

z309844110 发表于 2018-1-22 15:16:26

#define PRICE 30;
后面没有分号

549444387@qq.co 发表于 2018-1-22 15:28:26

宏定义后面是不需要加分号的 加上分号后会提示错误
#include<stdio.h>

#define PRICE 30

void main()
{
      int num, total;
          num = 10;
          total = num*PRICE;
          printf("total = %d\n ",total);
}

我运行了 没有错误

U201010009 发表于 2018-1-22 15:41:44

hickttye 发表于 2018-1-22 12:26
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/ ...

你把你项目的属性->链接器->系统->子系统选项设置为控制台(console).
你创建的项目这项属性应该是窗口(Windows)的

必填的用户名 发表于 2018-1-22 16:32:23

7楼8楼正解(关掉正在运行的程序),九楼不清楚{:10_302:}

U201010009 发表于 2018-1-22 17:09:50

必填的用户名 发表于 2018-1-22 16:32
7楼8楼正解(关掉正在运行的程序),九楼不清楚

WinMain是win32程序的入口,也就是窗口程序。
main是控制台程序入口。

焦糖橙子 发表于 2018-1-24 23:13:58

和分号没关系,程序正常运行没问题,你把工作窗口关完了再编辑一次试试

musilintan 发表于 2018-1-25 14:06:31

main函数,工程要创建成win32控制台的。
win32控制台程序的入口函数是mian。
win32程序入口函数是winMain。

还有,宏定义后面不要加“;”号,宏定义的本质是替换。编译器再编译的时候会将你引用的宏替换为你定义的内容。是原封不动的替换。
也就是说:
total = num*PRICE;会被替换为total = num*30;;
注意这里会有两个“;”号
页: [1]
查看完整版本: C语言