c - 声明一个不返回任何内容且没有任何参数的函数是否合法?

标签 c void

我见过不返回任何东西的函数,它们被声明为:

void foo()

我也见过没有任何参数的函数:

int foo(void)

同时申报两者是否合法且良好?如:

void foo(void)

最佳答案

如评论中所述,良好做法取决于上下文。以下面的函数不带任何参数也不返回任何内容为例:

void drawSpecialSeparator(void) {
    int i = 0;
    for (; i < 10; i++) {
        printf("%s", (i % 2) ? "--" : "++");
    }

    printf("\n");
}

可以是一个简单的好例子,可以模块化你的代码。此外,它还提高了您的代码可读性,您以后可以轻松地重用它。

因此,在正确的上下文中使用此类函数是一种很好的做法。

旁注:我个人从不使用这些类型的函数来更改全局变量。也许这只是我的个人品味,但我相信使用这些函数更改全局变量会极大地增加代码歧义。

关于c - 声明一个不返回任何内容且没有任何参数的函数是否合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59239081/

相关文章:

c++ - Linux 命令检测程序的计算机资源使用情况

c++ - 为什么这个片段可以用 C 语言编译?

c++ - SFINAE: 'static_cast<void>()' 或 ', void()'?

c++ - 将 'void' 作为函数参数传递

C - Memcpy 两个 int 到单个 Void 指针

c - 有什么方法可以比较两个 void 指针以在 C 中声明相同的类型吗?

c - 了解并添加 qemu hmp 命令

c - while ((ch = getchar()) != EOF) 或提前声明 int ch = getchar()

c - Visual Studio 2012 中的 Zlib

c - 如何在 gcc/mingw 中进行边界检查?