Как правильно создать функцию C (включая заголовочный файл)

Я пытаюсь создать свои собственные функции в C, а затем использовать #include с заголовочным файлом. Я знаю, как сделать заголовочный файл, и я написал функцию.c. Однако, когда я пытаюсь скомпилировать.c, я получаю сообщение об ошибке "Ошибка компоновщика] с неопределенной ссылкой на" WinMain@16 ", и он не может скомпилироваться. Затем, если я пытаюсь использовать его в программе, он говорит: "[Предупреждение] нет новой строки в конце файла", а затем "[Ошибка компоновщика] неопределенная ссылка на validf (int, int, int)". Кто-нибудь может помочь?

Код функции:

int validf(int current,int max, int zero)
{
    if(zero==1)
    {
        if(current>max || current<0)
        {
            printf("Invalid Input");
            return 0; 
        }
        else
        {
            return 1;
        }
    }
    else if(zero==0)
    {
        if(current>max || current<=0)
        {
            printf("Invalid Input");
            return 0;
        }
        else
        {
            return 1;
        }
    }
    else
    {
        printf("Invalid parameters");
        return -1;
    }
}

Основной код:

#include<stdio.h>
#include<stdlib.h>
#include "validf.h"

int main()
{
  int valid=0;
  valid=validf(4,5,0);
  printf("%d",valid);
  system("\npause");
  return 0;
}

Код заголовка:

#ifndef VALIDF_H_  
#define VALIDF_H_  
int validf(int current,int max,int zero);  
#endif

1 ответ

Ваша программа состоит из 3 файлов:

validf.h заголовочный файл для validf, Содержит декларацию validf функция

validf.c файл кода для validf, Содержит определение validf функция.

main.c содержит main функция. Возможно, вы выбрали другое имя для этого файла.

В вашей IDE вы должны создать проект, который состоит из этих файлов. Вам также необходимо настроить имя результирующей программы. Я не знаком с этой конкретной IDE, но обычно это делается под Project->Settings->Compile or Build or Link,

Это заставит вашу IDE скомпилировать два .c файлы, а затем связать их в одну программу.

Если вы не создаете проект, вероятно, что IDE обрабатывает каждый .c файл как другая программа, которая вызовет ошибки, которые вы упоминаете.

Другие вопросы по тегам