Separate Compilation (分割コンパイル ): chia chương trình C thành nhiều file khác nhau khi xây dựng một chương trình lớn, nhiều người tham gia.
Ví dụ chia làm 2 file phụ là init.c, và done.c cùng với file chính main.c
Ta tạo thêm 2 head file init.h và done.h để chứa khai báo prototype hàm trong file init.c và done.c
File init.h
void init();
File init.c
#include "init.h"
void init() {}
File done.h
void done();
File done.c
#include "done.h"
void done() {}
File main.c
#include <stdlib.h>
#include "init.h"
#include "done.h"
Biên dịch trong gcc
% gcc -c main.c
% gcc -c init.c
% gcc -c done.c
% gcc main.o init.o done.o -o test
hoặc
% gcc main.c init.c done.c -o test
hoặc tạo makefile
Khai báo static cho hàm số thì hàm số ấy chỉ được dùng trong phạm vi file.c chứa nó => tránh việc xung đột tên hàm với file.c khác; ẩn thông tin đối với file khác