Tag: function

如何在C中对函数进行排序? “以前的函数隐式声明在这里”错误

我确定以前曾经问过,但我找不到任何能帮到我的东西。 我有一个C语言的程序,看起来像这样 function2(){ function1() } function1 (){ function2() } main () { function1() } 它比这更复杂,但我正在使用递归。 而且我无法在文件中安排该函数,以便每个函数只调用上面指定的函数。 我一直收到错误 main.c:193: error: conflicting types for ‘function2’ main.c:127: error: previous implicit declaration of ‘function2’ was here 我该如何避免这种情况? 提前感谢您的建议和解答。

来自标准信号库的C声明

那么有人可以解释这应该做什么: void (*signal(int sig, void (*func)(int)) ) (int); 它是从标准信号库中获得的定义。

是否可以调用C函数,并将其名称作为字符串?

我在其中一个C谜题中看到了这个问题!! 这真的有可能吗? 如果将其名称作为字符串,我如何调用函数? 是否可以使用scanf读取的字符串直接用于调用函数? 我已经想过if(strcmp(str,“string”))然后调用该函数。 但还有其他方法吗?

标识符列表Vs中的参数类型列表

6.7.6.3 Function declarators (including prototypes) 标准的这一部分涉及’Identifier list’和’Parameter type list’ 。 首先,函数声明(非定义)与函数原型相同。 我对么? 如果这是对的,那么为什么标准会说’including prototypes’ ? 我无法理解’Identifier list’和’Parameter type list’在function声明方面的区别。 int fun(); // Declaration int fun(int x)// Definition, but the signature doesn’t match and it works. { return x; } 有人可以解释一下,我很困惑?

如何在C中从外部.c文件调用函数?

我的档案是 // main.c #include “add.c” int main(void) { int result = add(5,6); printf(“%d\n”, result); } 和 // add.c int add(int a, int b) { return a + b; }

为什么不返回修改函数的参数值

可能重复: 如何修改通过值传递的原始变量的内容? 我正在构建一个非常简单的程序来计算矩形的面积。 但是很简单,因为你会注意到我似乎无法获得返回值。 我一直看到0.可能有一个明显的答案,或者有些事我不明白。 inheritance我的代码: #include //prototypes int FindArea(int , int , int); main() { //Area of a Rectangle int rBase,rHeight,rArea = 0; //get base printf(“\n\n\tThis program will calculate the Area of a rectangle.”); printf(“\n\n\tFirst, enter a value of the base of a rectangle:”); scanf(” %d” , &rBase); //refresh and get height system(“cls”); printf(“\n\n\tNow […]

C:如何将双指针传递给函数

当我将双指针传递给函数以初始化内存时,我遇到了分段错误 int main() { double **A; initialize(A, 10, 10); …… } void initialize(double **A, int r, int c) { A = (double **)malloc(sizeof(double *)*r); for(int i = 0; i< r; i++) { A[i] = (double *)malloc(sizeof(double) *c); for(int j = 0; j < c; j++) { A[i][j] = 0.0; } } } 如何将双指针传递给函数…..

具有不同语义的函数调用

考虑这个代码有3个不同的函数调用语义: void f(void){ puts(“OK”); } int main(void){ f(); (*f)(); (&f)(); return 0; } 第一种是调用f的标准方式, 第二个是解除引用函数指针的语义, 但在第三个我将&运算符应用于函数名称,它似乎工作正常。 在第二和第三种情况下会发生什么? 谢谢。

C:警告:’withdraw_amt’可以在此function中未初始化使用

我正在为C类的介绍编写一个程序,并在尝试使用gcc编译时不断收到警告。 这是我的代码: int main () { float balance; float beg_balance; float withdrawal_amt; float deposit_amt; float amount; int total_withdrawals; int total_deposits; int selection; print_greeting (); printf(“Let’s begin with your beginning balance”); beg_balance = get_positive_value(); do { print_menu (); scanf(“%d”, &selection); switch (selection) { case WITHDRAWAL: get_positive_value(); balance = withdrawal(balance, withdrawal_amt, amount); break; case DEPOSIT: get_positive_value(); balance […]

我可以重新定义一个函数或检查它是否存在?

我有一个关于(重新)定义函数的问题。 我的目标是有一个脚本,我可以选择定义一个函数。 像这样: void func(){} int main(){ if (func)func(); } 没有这个function,只需: int main(){ if (func)func(); } 有人有想法吗?