【发布时间】:2020-12-09 19:37:37
【问题描述】:
你能告诉我为什么运行这两个代码我有不同的输出吗?
void UART_OutString(unsigned char buffer[]){
int i;
while(buffer[i]){
UART_OutChar(buffer[i]);
i++;
}
}
和
void UART_OutString(unsigned char buffer[]){
int i = 0;
while(buffer[i]){
UART_OutChar(buffer[i++]);
}
}
问候,杰纳迪
【问题讨论】:
-
int i;在第一个代码中未初始化,首先... -
默认不等于0吗?同样在调试器中我看到'int i'有一个值= 0x0
-
在编译器中启用警告? (局部变量默认不初始化)。
-
@Gendozz 你很幸运,当时它恰好为零,但不,默认情况下它没有初始化。
-
在第一部分中,您不会将 i 初始化为 0