Лекция 19 - Препроцесор и хедъри
Линк към презентацията
А и Б клас
// macros.c
#include <stdio.h>
#define DEBUG
#define PI 3.14
#define square(x) (x) * (x)
int main() {
#ifdef DEBUG
printf("I'M DEBUGGING\n");
#endif
printf("PI = %f\n", PI);
int a = 7;
printf("7^2 = %d\n", square(5 + 2));
return 0;
}
#undef DEBUG
// headers.c
#include <stdio.h>
#include "string.h"
#include "string.h"
int main() {
//printf("strlen(abcd) = %d\n", strlen2("abcd"));
return 0;
}
// string.h
#ifndef STRING_H
#define STRING_H
int strlen2(char *);
int VAR = 10;
#endif
// string-linux.c
#include "string.h"
int strlen2(char* str) {
return 5;
}
// string-win.c
#include "string.h"
int strlen2(char* str) {
return 7;
}
// makefile
default: linux
win:
gcc -E headers.c string-win.c
linux:
gcc headers.c string-linux.c