Tag: 返回

C中system()的返回值

我在C中使用system()命令来执行sc query mysql或net start mysql等命令。 如果参数为空指针,则在cmd处理器正常时返回1,否则返回0.在成功执行命令时,返回0。 我的问题是:我可以获得其返回值列表吗? 就像命令无效或返回值不成功时返回的内容一样? 我想根据system()的返回值做不同的事情。

没有return语句的C和C ++函数

在查看工作代码时,我发现了一些(看似)令人反感的代码,其中函数具有返回类型,但没有返回。 我知道代码有效,但认为它只是编译器中的一个错误。 我编写了以下测试并使用我的编译器运行它(gcc(Homebrew gcc 5.2.0)5.2.0) #include int f(int a, int b) { int c = a + b; } int main() { int x = 5, y = 6; printf(“f(%d,%d) is %d\n”, x, y, f(x,y)); // f(5,6) is 11 return 0; } 类似于我在工作中找到的代码,这默认返回函数中执行的最后一个表达式的结果。 我发现了这个问题,但对答案不满意。 我知道使用-Wall -Werror可以避免这种行为,但为什么它是一个选项呢? 为什么这仍然允许?

返回指向本地结构的指针

将指针返回到C中的本地结构是否安全? 我的意思是这样做 struct myStruct* GetStruct() { struct myStruct *str = (struct myStruct*)malloc(sizeof(struct myStruct)); //initialize struct members here return str; } 安全? 谢谢。

计算函数返回值的最佳实践

通常我在C中构建函数来检查一些参数并返回错误代码。 当我发现错误时停止值检查的最佳方法是什么? 第一个例子: ErrorCode_e myCheckFunction( some params ) { ErrorCode_e error = CHECK_FAILED; if( foo == bar ) { if( foo_1 == bar_1 ) { if( foo_2 == bar_2 ) { error = CHECK_SUCCESS; } } } return error; } 第二个例子: ErrorCode_e myCheckFunction( some params ) { if( foo != bar ) { return CHECK_FAILED; […]

从函数返回char / string

我在C中编码相当新,目前我正在尝试创建一个返回ac string / char数组并分配给变量的函数。 到目前为止,我已经观察到返回char *是最常见的解决方案。 所以我试过: char* createStr() { char char1= ‘m’; char char2= ‘y’; char str[3]; str[0] = char1; str[1] = char2; str[2] = ‘\0’; char* cp = str; return cp; } 我的问题是如何使用这个返回的char*并将它指向的char数组赋值给char []变量? 我尝试过(都导致了noob-drowning错误): char* charP = createStr(); char myStr[3] = &createStr(); char* charP = *createStr();

通过指针从C和C ++中的函数返回本地数据

我跟朋友争吵了。 他说我可以从函数返回指向本地数据的指针。 这不是我所学到的,但我找不到反对他来certificate我的知识的反驳。 这是一个例子: char *name() { char n[10] = “bodacydo!”; return n; } 它用作: int main() { char *n = name(); printf(“%s\n”, n); } 他说这是完全可以的,因为在一个程序调用name后,它会返回一个指向n的指针,然后就会打印它。 同时程序中没有其他任何事情发生,因为它是单线程的,执行是串行的。 我找不到反驳的论点。 我永远不会写那样的代码,但他很顽固,并说这完全没问题。 如果我是他的老板,我会解雇他是一个顽固的白痴,但我找不到反驳的论点。 另一个例子: int *number() { int n = 5; return &n; } int main() { int *a = number(); int b = 9; int c = […]