Затем 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. Где это будет включено?

Ответы на вопрос(2)

Ваш ответ на вопрос