C++ [错误预期标识符或';(';之前&&';{&';标记]

C++ [错误预期标识符或';(';之前&&';{&';标记],c++,c,C++,C,我有一个项目,项目中的两个文件分别命名为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 ma

我有一个项目,项目中的两个文件分别命名为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);
}
我无法理解为什么会出现此警告,因为我必须在我的项目的其他文件中使用此结构。

文件开头的
#define
s会导致这些函数名替换为分号。特别是,此函数名:

#define data();
造成这种情况的原因是:

void data()

{
为此:

void ;

{

这会导致您的错误,因为函数名和括号都丢失,并且添加了不需要的分号。

C和C++中的警告和错误总是指示行号。使用此信息。或者至少在您的问题中指出它是什么。ome将导致堆栈溢出。请尽快阅读页面。若要缩进代码,请选择它,然后使用编辑框上方的
{}
按钮将其缩进。确保您的代码缩进的样式或多或少是正统的,最好是空格而不是制表符,并且制表位设置为4(这大致是假定的)在C++中,你可以做<代码>人Obj>;< /COD>而不是<代码> Stutt对象Ob>;<代码>。你的问题是你有“代码”>定义了数据();< /代码>,然后你声明一个函数<代码>无效数据()。。
#define
使
数据成为一个值仅为
的宏。你的
#define
在这里真的没有什么意义。你应该找一本好书或教程,密切关注它,了解你在写什么,而不是编造东西(比如
#define data()
)。
void ;

{