How to invoke function from external .c file in C?

前端 未结 8 1765
清酒与你
清酒与你 2020-12-23 19:31

My files are

// main.c  

#include \"add.c\"

int main(void) {
    int result = add(5,6);
    printf(\"%d\\n\", result);
}  

and

         


        
相关标签:
8条回答
  • 2020-12-23 20:06

    use #include "ClasseAusiliaria.c" [Dont use angle brackets (< >) ]

    and I prefer save file with .h extension in the same Directory/folder.

    #include "ClasseAusiliaria.h"

    0 讨论(0)
  • 2020-12-23 20:15

    You must declare int add(int a, int b); (note to the semicolon) in a header file and include the file into both files. Including it into Main.c will tell compiler how the function should be called. Including into the second file will allow you to check that declaration is valid (compiler would complain if declaration and implementation were not matched).

    Then you must compile both *.c files into one project. Details are compiler-dependent.

    0 讨论(0)
  • 2020-12-23 20:15

    make a file classAusiliaria.h and in there provide your method signatures.

    Now instead of including the .c file include this .h file.

    0 讨论(0)
  • 2020-12-23 20:19
     write main.c like this - 
     caution : while linking both main.0 and ClasseAusiliaria.o should be 
     available to linker.
    
     #include <stdlib.h>
     #include <stdio.h>
     extern int addizione(int a, int b)
    
     int main(void)
     {
         int risultato;
         risultato = addizione(5,6);
         printf("%d\n",risultato);
     }
    
    0 讨论(0)
  • 2020-12-23 20:21

    You can include the .c files, no problem with it logically, but according to the standard to hide the implementation of the function but to provide the binaries, headers and source files techniques are used, where the headers are used to define the function signatures where as the source files have the implementation. When you sell your project to outside you just ship the headers and binaries(libs and dlls) so that you hide the main logic behind your function implementation.

    Here the problem is you have to use "" instead of <> as you are including a file which is located inside the same directory to the file where the inclusion happens. It is common to both .c and .h files

    0 讨论(0)
  • 2020-12-23 20:23

    you shouldn't include c-files in other c-files. Instead create a header file where the function is declared that you want to call. Like so: file ClasseAusiliaria.h:

    int addizione(int a, int b); // this tells the compiler that there is a function defined and the linker will sort the right adress to call out.
    

    In your Main.c file you can then include the newly created header file:

    #include <stdlib.h>
    #include <stdio.h>
    #include <ClasseAusiliaria.h>
    
    int main(void)
    {
        int risultato;
        risultato = addizione(5,6);
        printf("%d\n",risultato);
    }
    
    0 讨论(0)
提交回复
热议问题