1.前言:
在内核中我们经常遇到"section"类似的字眼.把相关的CPU或设备信息存放在某个section里面.然后对这个section进行
遍历,判断这个section里面是否有我们自己想要的信息.这是一种不错的编译思想.下面整理了一个示例来加固下这种思想
的学习.
2.示例:
car.h
#ifndef _CAR_H_
#define _CAR_H_
typedef struct __car
{
const char *name;
const char *owner;
int (*price)(void);
}car,*pcar;
#ifndef MKSTR
#define MKSTR(x) #x
#endif
#define CAR_SECTION __attribute__((used,section("car")))
#define CAR(__name,__owner,__price) \
static car car##__name CAR_SECTION = { \
.name = MKSTR(__name),\
.owner = MKSTR(__owner),\
.price = __price,\
}
#endif
car.c
/*To Show How To Use GNU_C __attribute__(section("xx"))
*Modify By SE7EN @2013-6-11
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.