// bala bala
#include就是包含头文件用的,不是吗?!
还有这样用的:
当时看得我一愣一愣的……
A source file together with all the headers and source files included via the preprocessing directive #include is known as a preprocessing translation unit. After preprocessing, a preprocessing translation unit is called a translation unit.
ISO/IEC 9899:1999 (E)
简单地理解,一个source file和一些由#include包含着的headers和source files,通过预编译后,变成一个叫translation unit的东西。
// main.c
#include "add.h"
#include "minus.c"
int add(int a, int b)
{
return a+b;
}
int main(void)
{
int c = add(1,2);
int d = minus(2-1);
return 0;
}
// add.h
extern int add(int a, int b);
// minus.c
int minus(int a, int b)
{
return a-b;
}
// main.c
#include "multiply.txt"
int main(void)
{
int e = multiply(2,2);
return 0;
}
// main.c
#include "devide.fxxk"
int main(void)
{
int f = devide(2,2);
return 0;
}
// main.c
int main(void)
{
#include "squel.xx"
int g = squel(2,2);
return 0;
}
// data.txt
1,2,3,4,5,6,7,8,9
// main.c
int arr[] =
{
#include "data.txt"
}
int main(void)
{
return 0;
}
extern int add(int a, int b);
int minus(int a, int b)
{
return a-b;
}
int add(int a, int b)
{
return a+b;
}
int main(void)
{
int c = add(1,2);
int d = minus(2-1);
return 0;
}
// includes.h
#include "adc.h"
#include "uart.h"
#include "spi.h"
#include "iic.h"
#include "dma.h"
#include "pwm.h"
#include "pin.h"
#include "led.h"
#include "os.h"
#include "timer.h"
...
// main.c
In file included from .\main.c:4:
minus.c:1:5: 错误:‘minus’重定义
1 | int minus(int a, int b)
| ^~~~~
int minus(int a, int b)
{
return a-b;
}
• 将Memory的物理地址映射到自定义逻辑地址
• 逻辑地址按Memory的Block对齐,逻辑地址从0开始
• 用户数据按逻辑地址分配
• 应用接口按实际内容大小操作
• 底层接口根据逻辑地址对齐读写Memory
我想定义一些内容条目,这些条目分别对应不同的内存地址,不同的长度,以后有需要还可以继续从后面添加就这样:
entry name | address | size |
ID_DATA1 | 0 | 8 |
ID_DATA2 | 8 | 8 |
ID_DATA3 | 16 | 16 |
... |
// defines.h
// memory.c
ENTRY(ID_DATA1, 0, 8) \
ENTRY(ID_DATA2, 8, 8) \
ENTRY(ID_DATA3, 16, 16) \
ENTRY(ID_DATA4, 32, 8)
typedef enum
{
ALL_ENTRIES()
MEM_ID_MAX
} MEM_ID;
const uint32_t mem_addr[] =
{
ALL_ENTRIES()
};
const uint16_t mem_size[] =
{
ALL_ENTRIES()
};
如果用结构体去定义的话,也很好,但是会增加数组遍历时间。如果是很庞大的条目数的话,这个效率问题就要考虑了。
END
→点关注,不迷路←
文章引用微信公众号"嵌入式微处理器",如有侵权,请联系管理员删除!