小编itz*_*bby的帖子

虽然禁用了缓冲,但Printf不会立即打印

我在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)上.
提前致谢!

c linux printf buffer raspberry-pi3

3
推荐指数
1
解决办法
370
查看次数

有没有办法通过函数调用的参数来定义数组?

我有一个函数,它需要一个变量和一个指针。

void sendCMD(byte cmd, byte data[]){
    ...
}
Run Code Online (Sandbox Code Playgroud)

是否可以像这样以任何方式使用数据调用此函数

sendCMD(0xff, { 0x0a, 0x02 });
Run Code Online (Sandbox Code Playgroud)

因为即使通过谷歌搜索我也没有找到任何东西......也许我看起来还不够努力,但我也不确定我应该寻找什么条款。任何帮助表示感谢!请注意,byte这与char!

c arguments function definition parameter-passing

1
推荐指数
1
解决办法
87
查看次数

参数中的字符串操作

我有两个功能.一个函数调用打印功能.
调用函数(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()

c

0
推荐指数
1
解决办法
74
查看次数

在c中创建的数组不是空的?

我刚刚创建了一个大小为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)

这是为什么?
提前致谢!

c

-2
推荐指数
2
解决办法
254
查看次数