Ниже приведен заголовочный файл, содержащий определения, чтобы их можно было использовать в других единицах компиляции:
#include <stdio.h>
#ifndef header_constant
#define header_constant
typedef struct {
int port;
int pin;
} pin_t;
pin_t pinArray[100];
#define DEFINE_PIN(name, port, num,arrayPos) \
const pin_t name = {port, num};\
pinArray[arrayPos]= name;
#endif
Примечание: символ \
указывает компилятору продолжать использовать следующую строку как часть макрос.
Ниже приведена основная программа:
# include "headername.h"
void main(){
DEFINE_PIN(pin1,1,2,0);
DEFINE_PIN(pin2,3,4,1);
DEFINE_PIN(pin3,6,5,2);
printf("%d",pin2.pin);
}