繁体   English   中英

在C中使用main函数?

[英]Using main function in C?

我正在创建一个主要函数来测试名为mchar的C函数的限制。 mchar将char作为参数。

int main ()
{
    mchar();
    mchar('A');
    mchar('\n');
    mchar('');
    mchar(NULL);
}

我正在尝试考虑所有可能导致该方法出错的用例。 所有这些都能正确调用吗? 还有我所缺少的用例吗?

只有256个字符,因此您可以轻松地使用所有字符进行调用:

#include <limits.h>

int main(void)
{
    for (int c = CHAR_MIN; c <= CHAR_MAX; ++c) {
        mchar(c);
    }

    return 0;
}

如果您特别想测试“有趣的”字符,则可以尝试这些字符。

mchar('\'');    // Single quote
mchar('"');     // Double quote
mchar('\\');    // Backslash

mchar(' ');     // Space
mchar('\t');    // Tab
mchar('\n');    // Line feed
mchar('\r');    // Carriage return

mchar('\0');    // NUL
mchar('\b');    // Backspace
mchar('\f');    // Form feed
mchar('\v');    // Vertical tab
mchar('\a');    // Bell (alert)

关于你的问题

所有这些都能正确调用吗?

首先

mchar('A');
mchar('\n');

这里的'A','\\ n'是有效字符。 所以这将正常工作

mchar('');

是非法的,并且会给出编译时错误。 例如:对于gcc,显示的错误是空字符常量。

mchar();

也是非法的,因为函数期望使用char作为参数,但是您没有传递任何参数。 您将得到一个编译时错误(类似“ 函数参数太少”之类的东西)。

mchar(NULL);

会在正常情况下进行编译(如果您未设置任何严格的编译器标志,则会编译),但会出现警告。

警告:整数转换的不兼容指针,将“ void *”传递给类型为“ char”的参数;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM