gpt4 book ai didi

c - 如何 printf ("Hello" "World");工作

转载 作者:行者123 更新时间:2023-11-30 21:33:06 26 4
gpt4 key购买 nike

我已经开始编写我的第一个内核模块并使用 KERN_INFO宏。
该行本身看起来像这样

printk(KERN_INFO "Hello world");

所以我很困惑,为什么KERN_INFO后面没有逗号并使用预处理器打印扩展版本。

printk("\001" "6" "Hello world 2\n");

现在我更加困惑了。我写了一个小程序来测试这个 printf .

#include <stdio.h>

int main (void)
{
printf("Hello" "World");
return 0;
}

效果很好,但为什么呢?
我不认为这是两个参数,因为参数是用逗号分隔的。
我知道 C 会忽略所有空格,但我从来没有
听说过它可以在没有函数的情况下连接 2 个字符串。

是否有官方文档表明这是可能的或它是如何工作的?

最佳答案

C 连接相邻的字符串文字。所以对于C语言来说:

"abc" "def"

等同于:

"abcdef"

重要的是要记住它仅适用于编译时文字,不适用于 char * 变量,因此:

char s[10] = "abc";
printf(s "def");

行不通。

关于c - 如何 printf ("Hello" "World");工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com