我在C中的printf函数有问题.虽然缓冲被禁用,但它不打印输出:
setbuf(stdout, NULL);
Run Code Online (Sandbox Code Playgroud)
和
setvbuf(stdout, NULL, _IONBF, 0);
Run Code Online (Sandbox Code Playgroud)
我也在使用fflush(stdout);
,但它仍然无效.
这是确切的代码:
int setup(){
//...
printf("Setup successful\n");
fflush(stdout);
return 0;
}
int main(int argc, char *argv[]){
setbuf(stdout, NULL);
setvbuf(stdout, NULL, _IONBF, 0);
setup();
//...
)
Run Code Online (Sandbox Code Playgroud)
如果信息有帮助; 我在Linux(raspberry Pi)上.
提前致谢!
我有一个函数,它需要一个变量和一个指针。
void sendCMD(byte cmd, byte data[]){
...
}
Run Code Online (Sandbox Code Playgroud)
是否可以像这样以任何方式使用数据调用此函数
sendCMD(0xff, { 0x0a, 0x02 });
Run Code Online (Sandbox Code Playgroud)
因为即使通过谷歌搜索我也没有找到任何东西......也许我看起来还不够努力,但我也不确定我应该寻找什么条款。任何帮助表示感谢!请注意,byte
这与char
!
我有两个功能.一个函数调用打印功能.
调用函数(key
是一个介于0和42之间的数字,表示遥控器的键,keymap
只是将名称映射到键):
void calling_function(int key){
print_info("[KEY]", ("%#4x %s", key, keymap[key - 1]));
...
}
Run Code Online (Sandbox Code Playgroud)
和打印功能:
print_info(char *prefix, char *message){
print("%s %s\n", prefix, message);
}
Run Code Online (Sandbox Code Playgroud)
但输出看起来像这样:
[KEY] COLOR_RED
所以缺少int,为什么不插入整数?我想不合作sprintf()
我刚刚创建了一个大小为10的数组
int array[10];
Run Code Online (Sandbox Code Playgroud)
之后我想检查数值
for(int i = 0; i < 10; i++){
printf("%d\n", array[i]);
}
Run Code Online (Sandbox Code Playgroud)
但产量与我的预期不同.我虽然所有值都应为0,但输出结果如下:
1996260900
1
0
1995115336
78836
78796
0
68600
0
0
Run Code Online (Sandbox Code Playgroud)
这是为什么?
提前致谢!