Tag: 返回

如果没有明确的“返回”,则函数将返回什么

当我忘记编写函数的return子句时,我遇到了这个问题,但是gcc没有警告或错误。 我修复了它,但开始想知道为什么函数会在没有return情况下return 无意义的东西。 以下是我尝试过的一些例子: #include “stdio.h” #include “stdlib.h” int func1 () { int i; i = 2; } int func2 (int a) { int i = a+3; } int func3 () { int i; for (i = 0; i <= 1; i++); } int main(void) { int a = 0; int b = 0; int […]

返回语句后的序列点?

在我对这里的一个问题的回答中,我解释了当postfix ++在与return语句相同的行上的全局变量上使用时发生了什么。 C11的资料性附录C表明在return后立即有一个序列点,并参考规范性章节6.8.6.4,其中没有关于序列点的文本可以找到。 我可以在C标准中找到规范性文本,说明return语句后有一个序列点吗? (我只在7.1.4 / 3中找到了规范文本,用于库函数,作为一个特殊情况。)

为什么C代码不返回结构?

虽然它非常方便,但我很少(如果有的话)遇到在C中返回struct (或union s)的函数,无论它们是动态链接函数还是静态定义函数。 它们通过指针参数返回数据。 (Windows中的动态示例是GetSystemInfo 。) 这背后的原因是什么? 是因为性能问题,ABI兼容性问题还是其他问题?

那么“返回0”究竟意味着什么呢?

我非常精通PHP,但我已经开始涉足C.我已经看过代码了 return 0; 在不返回值的函数的末尾。 这在PHP中没有使用,因为如果函数没有返回,则会自动返回值NULL。 所有我要问的是,用简单的英语, return 0实际上做了什么? 它是否像PHP一样,它将其参数作为函数调用的值返回? 这只是好习惯吗? 我知道之前已经多次询问过这个问题,但我从PHP开发人员的角度来问这个问题。 谷歌抛出的答案并没有那么简洁。

从C函数返回数组

我想弄清楚如何在C中返回一个数组。这就是代码。 我要做的是保存一个数组,然后使用函数返回打印它。 我在这做错了什么? #include #define DIM 50 char *func (char input[]); int main(void) { char input[DIM]; printf(“input? “); fgets(input, DIM, stdin); printf(“output: %s”, func(input)); return 0; } char *func(char input[]) { int i; char output[DIM]; for(i = 0; i < DIM; i++) output[i] = input[i]; return &output; }

没有返回类型定义的main()函数会发出警告

这是我的计划: main() { printf(“hello world\n”); } 编译时我收到此警告: function should return a value 将main()更改为void main() ,警告消失。 为什么会这样?

如何从单个函数返回不同的类型

我有以下c代码: #include #include void *func(int a) { if (a==3) { int a_int = 5; int *ptr_int = &a_int; return (void *)ptr_int; } else if (a==4) { char a_char = ‘b’; char *ptr_char = &a_char; return (void *)ptr_char; } else { fprintf(stderr, “return value is NULL”); return NULL; } } int main (int argc, char *argv[]) […]

如何在我的C代码中返回一个字符串?

我是C初学者,这是我的C代码: #include #include main() { printf(“Hello world !\n”); return ‘sss’; } 这将显示错误, 那么如何在C代码中返回一个字符串?

当我已经返回一个值时,从函数返回错误的最佳方法是什么?

我在C中编写了一个函数,它将字符串转换为整数并返回整数。 当我调用该函数时,我也希望它告诉我字符串是不是有效数字。 在过去,当发生此错误时,我返回-1,因为我不需要将字符串转换为负数。 但现在我希望它将字符串转换为负数,那么报告错误的最佳方法是什么? 如果我不清楚这个:我不希望这个函数向用户报告错误,我希望它将错误报告给调用该函数的代码。 (“报告”可能是错误的用词…) 这是代码: s32 intval(const char *string) { bool negative = false; u32 current_char = 0; if (string[0] == ‘-‘) { negative = true; current_char = 1; } s32 num = 0; while (string[current_char]) { if (string[current_char] ‘9’) { // Return an error here.. but how? } num *= 10; num […]

从函数返回一个字符串

我正在尝试在c上创建子字符串函数。 它必须返回“cdef”,但它什么都不返回。 我该如何解决? 谢谢。 #include #include #include char* substring( char *, int, int ); int main(){ char stuff[] = “abcdefghjklmnoprstuvyz”; printf(“%s\n”, stuff); printf(“%s\n”, substring(stuff, 2, 6)); getch(); return 0; } char* substring(char *text, int a, int b){ char nText[ba]; char tmp[2]; strcpy(nText, “”); for(int i=a; i<b; i++){ tmp[0] = text[i]; tmp[1] = '\0'; strcat(nText, tmp); […]