相关疑难解决方法(0)

功能没有任何返回类型

我知道有两种类型的函数:void和返回某些函数的函数(int,double等).但是如果在没有任何return语句的情况下声明函数怎么办?它被认为是一种void功能吗?例如,

myFunction(int value){
.......
}
Run Code Online (Sandbox Code Playgroud)

c function

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

隐式函数声明有时在 C 中工作?

有人可以向我解释为什么以下编译:

int main()
{
    int a = mymethod(0);
}
int mymethod(int b)
{
    return b;
}
Run Code Online (Sandbox Code Playgroud)

但这不会:

int main()
{
    mymethod(0);
}
void mymethod(int b)
{
    return;
}
Run Code Online (Sandbox Code Playgroud)

我认为在 C/C++ 中需要前向声明,但这里有一个反例。隐式声明如何在 C 中工作?

c function forward-declaration implicit-declaration

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

为什么在C中声明具有int返回类型的函数不是强制性的?

int main ()
{
hello();

return 0;
}

int hello()
{

printf("\n hello world");

return 0;
}
Run Code Online (Sandbox Code Playgroud)

根据C规则,下面定义的每个函数main()必须在上面声明,main() 但为什么它int作为返回类型的函数的异常?如果你将返回类型hello() 改为其他任何东西(void,char*等),它将抛出错误声明.为什么int 返回类型没有错误或警告?

c function forward-declaration function-declaration

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

将 const *char 传递给 strlen() 表示我正在传递 unsigned long

char** strsep(const char* str)
{
    char** returnStrings = NULL;
    for (int i = 0; i < strlen(str); i++)
    {
        if (str[i] == ' ') returnStrings[sizeof(returnStrings)/sizeof(returnStrings[0])] = "";
        else returnStrings[sizeof(returnStrings)/sizeof(returnStrings[0])] += str[i];
    }
    return returnStrings;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试制作一个可以将句子(字符串)拆分为单词数组(也是字符串)的函数,但它不会编译并显示error: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Werror,-Wimplicit-function-declaration]. 它说我正在输入一个 unsigned long 作为 strlen() 的参数,但我不是。我有#include <stdio.h>我的代码。

c strlen

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

C语言中的通用指针和C ++语言中的通用指针之间有什么区别?

对于我的考试,我必须解释void *C和C ++中通用指针()的区别。它们是两件事,但是我找不到它们之间的区别。

c c++

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