我有一个项目,项目中的两个文件被命名为d2.c.和student.txt。
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#define appendData();
#define data();
#define editRecord();
#define searchRecord();
#define deleteRecord();
int main(void)
{
struct person
{
char stdNumb [20];
char firstName [20],lastName [20], icPass [20], nationality [20], gender [20], dateOfBirth [20];
char contact [20], address [30];
};
char choice;
while(1)
{
printf("\n============================");
printf("\n MENU");
printf("\n============================");
printf("\n1. ADD");
printf("\n2. SEARCH");
printf("\n3. EDIT");
printf("\n4. DELETE");
printf("\n5. EXIT");
printf("\n============================");
printf("\n\n");
printf("Enter your choice : ");
choice = getche();
switch(choice)
{
case'1' : //call append record
data();
break;
case'2' : //call search record
searchRecord();
break;
case'3' : //edit record
editRecord();
break;
case'4' : //Read all record
deleteRecord();
break;
case'5':
exit(0);
defaut:
printf("ss");
}
}
}
void data()
{
FILE *fp;
struct person obj;
fp=fopen("D:\\data.txt","a");
printf("\n============================");
printf("\n ADD");
printf("\n============================\n\n");
printf("Student Number: ");
scanf("%s",&obj.stdNumb);
}
现在编译器正在给我一个警告
warning: useless type name in empty declaration [enabled by default]
我无法理解为什么会出现此警告,因为我必须在项目的其他文件中使用此结构。
答案 0 :(得分:3)
文件开头的#define
会导致这些函数名称被替换为分号。特别是这一个:
#define data();
造成这种情况:
void data()
{
成为这个:
void ;
{
会导致错误,因为缺少函数名和括号,并且添加了不需要的分号。