Затем C11 запрещает неявные объявления функций, но вы можете определить их явно.
тандартная библиотека, как libc.a (статическая библиотека), которая включена с помощью#include <stdio.h>
в нашем main.c отличается от определенного пользователем заголовочного файла (cube.h), включенного в main.c с его файлом реализации (cube.c) в C?
Я имею в виду, что оба являются заголовочными файлами, но одна реализация - это статическая библиотека (.a), а другие - исходный файл (.c).
Вы бы имели определение (реализацию), скажем, в cube.c
#include "cube.h"
int cube( int x ) {
return x * x * x;
}
Затем мы поместим объявление функции в другой файл. По соглашению это делается в заголовочном файле, в данном случае cube.h.
int cube( int x );
Теперь мы можем вызвать функцию откуда-то еще, например, main.c, используя директиву #include (которая является частью препроцессора C).
#include "cube.h"
#include <stdio.h>
int main() {
int c = cube( 10 );
printf("%d", c);
...
}
Также, если я включу в cube.h команду guard, что произойдет, если я включу cube.h в main.c и cube.c. Где это будет включено?