c语言关于结构定义和条件编译 VC++6.0 为什么把结构声明放到函数声明后面和主函数里都编译错误

把#ifdef改为#ifdefine也编译错误#include<stdio.h>#defineNAME_LEN25#ifdefNAME_LENstructpart{int... 把#ifdef改为#if define也编译错误
#include<stdio.h>
#define NAME_LEN 25

#ifdef NAME_LEN
struct part
{
int number;
char name[NAME_LEN+1];
int on_hand;
};
#endif

void print_struct(struct part p);

void main()
{

struct part part1 = { 528, "Disk drive", 10};

print_struct(part1);

}

void print_struct(struct part p)
{
printf("Part number: %d\n",p.number);
printf("Part name: %s\n",p.name);
printf("Quantity on_hand: %d\n",p.on_hand);
}
展开
 我来答
豚胖
2011-01-04 · TA获得超过1087个赞
知道小有建树答主
回答量:175
采纳率:100%
帮助的人:81.2万
展开全部
你的函数参数是结构类型变量,如果放在函数后或主函数内,则系统编译时,因为没定义相关类型而出错.
ruderal123
2011-01-04 · 超过18用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:21.7万
展开全部
你的函数print_struct的参数是struct part p 而主函数又调用了函数print_struct 所以结构声明必须在函数声明和主函数的前面啊!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
r1699
2011-01-06
知道答主
回答量:45
采纳率:0%
帮助的人:7.3万
展开全部
fgfhfhtr
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式