// case 1
unsigned int add_two_numbers(unsigned char a, unsigned char b);
//case 2
extern unsigned int add_two_numbers(unsigned char a, unsigned char b);
Run Code Online (Sandbox Code Playgroud)
案例1和案例2有什么区别?我从来没有使用extern作为函数原型,而是查看某人的代码(谁比我更有经验)我看到extern总是在声明函数原型时使用.任何人都可以指出请点差异吗?(或者指向我可以找到具体信息的链接).谷歌表示,这与外部联系有关.任何人都能指出一个例子,一个人会工作而另一个人不会吗?
我使用嵌入式C(KEIL),如果它有任何区别.
这是一个基本问题,但我找不到明确的答案.希望有人可以解释一下.
我想知道一个阵列占用多少内存空间.
多个不同类型的数组但具有相同的组合字节大小会占用相同的内存量吗?
阵列是否与具有相同大小的多个阵列占用相同的内存空间?
一些例子:
(在我的系统8051微控制器上
char = 1 byte;
int = 2 bytes ;
float = 4 bytes;)
//case 1
char array_nr1[40];
//case 2
char array_nr1[10];
char array_nr2[10];
char array_nr3[10];
char array_nr4[10];
//case 3
int array_nr1[10];
int array_nr2[10];
//case 4
float array_nr1[10];
//case 5
char array_nr1[10];
int array_nr2[5];
float array_nr3[5];
Run Code Online (Sandbox Code Playgroud)
是否所有5个案例都占用相同的内存量(40个字节)?是否有任何其他数据存储在内存中(例如阵列基地址)
谢谢.