Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中未解析的外部符号_C - Fatal编程技术网

C语言中未解析的外部符号

C语言中未解析的外部符号,c,C,未解决的外部符号错误正在阻止编译我的代码。它特别提到了在main中调用的两个函数。这些函数是我试图创建的交换机的一部分,它仍在构建中。如果有人对我如何修复错误或改进代码有任何建议,请提前告诉我并感谢您。仅供参考-我已经搜索了类似的问题,它们不是针对我的问题 #include <stdio.h> #include <stdlib.h> #include <string.h> //This is a macro intended for use with the

未解决的外部符号错误正在阻止编译我的代码。它特别提到了在
main
中调用的两个函数。这些函数是我试图创建的交换机的一部分,它仍在构建中。如果有人对我如何修复错误或改进代码有任何建议,请提前告诉我并感谢您。仅供参考-我已经搜索了类似的问题,它们不是针对我的问题

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//This is a macro intended for use with the emplyName array.
#define SIZE 20 

//This struct has all the varibles that I will be using in my functions
typedef struct person
{
    char* emplyName[5][SIZE];
    float emplyHours[5];
    float emplyRate[5];
    float emplyGross[5];
    float emplyBase[5];
    float emplyOvrt[5];
    float emplyTax[5];
    float emplyNet[5];
    float emplyTotal[5];
}input;

void menu(void);
void employeeInfo(input* emply);
void editEmployees(input* emply);
void print(input* emply);

int main(void)
{
    struct person *payroll={""};
    int choice = 0;
    menu();
    scanf_s("%c", &choice);
    switch (choice){
    case '1':
        employeeInfo(payroll);
        break;
    case '2':
        editEmployees(payroll);
        break;
    case '3':
        print(payroll);
        break;
    case '4':
        break;
    default:
        printf("Invalid entry\n");
    }
    system("pause");
}

void employeeInfo(input *emply)
{
    int i=0;
    do {
        printf("Enter employee name.\n");
        scanf_s("%s", &emply->emplyName[i]);
        printf("Enter employee hours.\n");
        scanf_s("%f", &emply->emplyHours[i]);
        printf("Enter Hourly rate.\n");
        scanf_s("%f", &emply->emplyRate[i]);
    } while (++i <= 5);

    void calculations(input *emply);/*Write a method that calculates the gross, base and overtime pay, pass by reference.*/
{
    int i;
    i = 0;
    for (i = 0; i < 5; i++){
        if (emply->emplyHours[i] > 40) {
            emply->emplyOvrt[i] = (emply->emplyHours[i] - 40) * (emply->emplyRate[i] * 1.5);
        }
        emply->emplyGross[i] = (((emply->emplyHours[i])*(emply->emplyRate[i])) + emply->emplyOvrt[i]);
        emply->emplyBase[i] = (emply->emplyGross[i]) - (emply->emplyOvrt[i]);
        emply->emplyTax[i] = ((emply->emplyGross[i])*.2);
        emply->emplyNet[i] = (emply->emplyGross[i]) - (emply->emplyTax[i]);
        emply->emplyTotal[0] += emply->emplyGross[i];
    }


}


void print(input *emply);
{
    int i;
    for (i = 0; i < 5; i++)
    {


        printf("Employee Name:%s\n", emply->emplyName[i]);
        printf("Hours Worked:%.2f\n ", emply->emplyHours[i]);
        printf("Hourly Rate:%.2f\n", emply->emplyRate[i]);
        printf("Gross Pay:%.2f\n", emply->emplyGross[i]);
        printf("Base Pay:%.2f\n", emply->emplyBase[i]);
        printf("Overtime Pay:%.2f\n", emply->emplyOvrt[i]);
        printf("Taxes Paid:%.2f\n", emply->emplyTax[i]);
        printf("Net Pay:%.2f\n", emply->emplyNet[i]);
    }
    printf("Total paid to all employees : %.2f\n", emply->emplyTotal[0]);
}
void editEmployees(input*emply);
{
    char edit;
    int i;
    printf("which employee would you like to edit?\n");
    for (i = 0; i < 5; i++){
        printf("%d.%s", i + 1, emply->emplyName[i]);
    }
    scanf_s("%c", &edit);
    switch (edit){
    case '1':
        printf("Enter employee name.\n");
        scanf_s("%s", &emply->emplyName[0]);
        printf("Enter employee hours.\n");
        scanf_s("%f", &emply->emplyHours[0]);
        printf("Enter Hourly rate.\n");
        scanf_s("%f", &emply->emplyRate[0]);
    }
}



}

void menu(void){
    printf("Main Menu\n");
    printf("1. Add Employee\n");
    printf("2. Edit Employee\n");
    printf("3. Print Employee\n");
    printf("4. Print All EMployees\n");
    printf("0. exit\n");

}
#包括
#包括
#包括
//这是一个用于emplyName数组的宏。
#定义尺寸20
//这个结构包含我将在函数中使用的所有变量
typedef结构人
{
char*emplyName[5][SIZE];
浮动工时[5];
浮动就业[5];
浮动就业率[5];
浮动就业基地[5];
浮动工资[5];
浮动就业税[5];
浮动就业网[5];
浮动就业总人数[5];
}输入;
作废菜单(作废);
作废员工信息(输入*员工);
无效编辑员工(输入*员工);
作废打印(输入*雇员);
内部主(空)
{
结构人员*payroll={'};
int-choice=0;
菜单();
scanf_s(“%c”和选项);
开关(选择){
案例“1”:
雇员资讯(薪金);
打破
案例“2”:
雇员(薪金);
打破
案例“3”:
打印(工资单);
打破
案例“4”:
打破
违约:
printf(“无效条目”);
}
系统(“暂停”);
}
作废员工信息(输入*员工)
{
int i=0;
做{
printf(“输入员工姓名。\n”);
scanf_s(“%s”,&emply->emplyName[i]);
printf(“输入员工工作时间。\n”);
scanf_s(“%f”,&emply->emplyHours[i]);
printf(“输入小时费率。\n”);
扫描(“%f”,&emply->emplyRate[i]);
}而(++i就业小时[i]>40){
雇员->雇员时间[i]=(雇员->雇员时间[i]-40)*(雇员->雇员时间[i]*1.5);
}
雇员->雇员时间[i]=(((雇员->雇员时间[i])*(雇员->雇员时间[i])+雇员->雇员时间[i]);
员工->员工库[i]=(员工->员工库[i])-(员工->员工库[i]);
雇员->雇员税[i]=((雇员->雇员税[i])*.2);
emply->emplyNet[i]=(emply->emplyGross[i])-(emply->emplyTax[i]);
员工->员工总数[0]+=员工->员工总数[i];
}
}
作废打印(输入*雇员);
{
int i;
对于(i=0;i<5;i++)
{
printf(“员工姓名:%s\n”,员工->员工姓名[i]);
printf(“工时:%.2f\n”,雇员->雇员小时[i]);
printf(“小时费率:%.2f\n”,雇员->雇员[i]);
printf(“工资总额:%.2f\n”,雇员->雇员薪酬[i]);
printf(“基本工资:%.2f\n”,雇员->雇员库[i]);
printf(“加班工资:%.2f\n”,雇员->雇员薪酬[i]);
printf(“已缴税款:%.2f\n”,雇员->雇员税[i]);
printf(“净工资:%.2f\n”,雇员->雇员网[i]);
}
printf(“支付给所有员工的总金额:%.2f\n”,emply->emplyTotal[0]);
}
无效编辑员工(输入*员工);
{
字符编辑;
int i;
printf(“您希望编辑哪位员工?\n”);
对于(i=0;i<5;i++){
printf(“%d.%s”,i+1,emply->emplyName[i]);
}
scanf_s(“%c”,编辑(&E));
开关(编辑){
案例“1”:
printf(“输入员工姓名。\n”);
scanf_s(“%s”,&emply->emplyName[0]);
printf(“输入员工工作时间。\n”);
扫描时间(“%f”,&emply->emplyHours[0]);
printf(“输入小时费率。\n”);
扫描(“%f”,&emply->emplyRate[0]);
}
}
}
作废菜单(作废){
printf(“主菜单”);
printf(“1.添加员工\n”);
printf(“2.编辑员工\n”);
printf(“3.打印员工\n”);
printf(“4.打印所有员工\n”);
printf(“0.exit\n”);
}

您定义了
editEmployeeInfo()
print()
本地到
employeeInfo()

  • 这会对程序的其余部分隐藏它们
  • 这不是标准的C
  • 如果您正确地缩进了代码,您很可能会自己注意到这一点

  • 对于您定义的
    editEmployees()
    print()
    本地到
    employeeInfo()
    calculations()
    也一样

  • 这会对程序的其余部分隐藏它们
  • 这不是标准的C
  • 如果您正确地缩进了代码,您很可能会自己注意到这一点

  • 同样适用于
    计算()…如何?为什么?如果你能告诉我们确切的错误信息,而不是让我们去猜测…错误4错误LNK2019:未解析的外部符号\u在函数中引用\u main C:\Users\jzapa\u 000\Desktop\Assignment4\Assignment4\Assignment\u 4.obj Assignment4Error 5错误LNK2019:未解析的外部符号\u打印在函数中引用_主C:\Users\jzapa_000\Desktop\Assignment4\Assignment4\Assignment_4.obj Assignment4请参见第一页。
    scanf_s(“%C”,&choice)…如何?为什么?如果你能告诉我们确切的错误信息,而不是让我们去猜测…错误4错误LNK2019:未解析的外部符号\u在函数中引用\u main C:\Users\jzapa\u 000\Desktop\Assignment4\Assignment4\Assignment\u 4.obj Assignment4Error 5错误LNK2019:未解析的外部符号\u打印在函数中引用_主C:\Users\jzapa_000\Desktop\Assignment4\Assignment4\Assignment_4.obj Assignment4see首先。你到底说这发生在哪里,我没有看到。你到底说这发生在哪里,我没有看到。