This question already has answers here:
Closed 5 years ago.
What does {0} mean when initializing an object?
(9个答案)
{0}在下面是什么意思?
一个零字符的数组但是我不认为你可以用更小的数组初始化更大的数组,或者你可以吗它是int而不是char,所以至少会引起警告,对吧?还是我完全误解了这会导致缓冲区的第一个字符归零吗?
struct ring_buffer
{
    unsigned char buffer[SERIAL_BUFFER_SIZE];
    volatile unsigned int head;
    volatile unsigned int tail;
};

ring_buffer rx_buffer  =  { { 0 }, 0, 0 };

最佳答案

{0}表示此结构或数组的“零初始化”在上面的例子中,rx_buffer.buffer将填充所有的零字节,而不是此时堆栈上发生的任何事情。
以下内容也适用于将整个环形缓冲区结构初始化为所有零字节:

ring_buffer rx_buffer = {0};

关于c - {0}是什么意思? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22704552/

10-12 22:25