Tag: 参数

C中的int foo(int argc,…)vs int foo()vs int foo(void)

所以今天我认为(第一次不可否认) int foo()实际上与int foo(void)不同,因为第一个允许任意数量的输入而第二个允许零 。 int foo()是否只是忽略任何给定的输入? 如果是这样,那么允许这种forms的function有什么意义呢? 如果没有,你怎么能访问它们,这与变量参数列表有什么不同(例如int foo (int argc, …) )?

C警告:不兼容的指针类型传递

我在尝试编译代码时遇到错误。 错误如下: warning: incompatible pointer types passing ‘void *(threadData *)’ to parameter of type ‘void * (*)(void *)’ [-Wincompatible-pointer-types] pthread_create(&threads[id], NULL, start,&data[id]); 我正在尝试将一个结构传递给函数, void * start(threadData* data) ,这一直让我失望。 有任何想法吗?

数组参数中的数组长度

我正在阅读C编程: KNKing 的现代方法学习C编程语言,本章讲述函数和数组参数。 解释了可以使用这些结构来表示数组参数的长度: 1。 void myfunc(int a, int b, int[a], int[b], int[*]); /* prototype */ void myfunc(int a, int b, int n[a], int m[b], int c[a+b+other_func()]) { … /* body */ } 2。 void myfunc(int[static 5]); /* prototype */ void myfunc(int a[static 5]) { … /* body */ } 所以问题是: 一个。 示例1中的构造是纯粹的装饰还是它们对编译器有影响? 湾 在这种情况下, […]

C:无论如何将参数加载到system()调用中

是否可以在系统调用中添加参数? 就像是 system(“rm %s %s”, string1, string2)

C编译器如何使用可变数量的参数实现函数?

几天前我参加了一次技术面试,有人问我C编译器的implments如何使用可变数量的参数? 它是如何通过堆栈的? 有人知道或可以探索吗? 谢谢,丹

在C中使用带有非选项参数的getopt

我正在C中创建一个处理大量命令行参数的小程序,所以我决定使用getopt为我排序。 但是,我希望两个非选项参数(源文件和目标文件)是必需的,因此在调用程序时必须将它们作为参数,即使没有标志或其他参数。 这是我用标志处理参数的简化版本: while ((c = getopt(argc, argv, “i:d:btw:h:s:”)) != -1) { switch (c) { case ‘i’: { i = (int)atol(optarg); } case ‘d’: { d = (int)atol(optarg); } case ‘b’: buf = 1; break; case ‘t’: time = 1; break; case ‘w’: w = (int)atol(optarg); break; case ‘h’: h = (int)atol(optarg); break; case ‘s’: […]

C中的默认参数

是否可以在C中设置默认参数的值? 例如: void display(int a, int b=10){ //do something } main(){ display(1); display(1,2); // override default value } Visual Studio 2008,抱怨-void显示语法错误(int a,int b = 10)。 如果这在C中不合法,那么替代方案是什么? 请告诉我。 谢谢。

将许多参数传递给C函数

如何将多个参数传递给C函数? 假设我有这个function: void f(int n, char* a, char* b, …) 我想要一个未定义数量的char *参数。 我怎么能这样做?

空参数列表是什么意思?

我正在阅读的这本书指出,当你在c中声明一个不接受任何参数的函数,但是你没有使用关键字void“函数调用可以传递它想要的任何参数”。 所以我尝试了这个。 int number(); int main(void) { int x =1; printf(“%d”,number(x)); } int number() { return x; } 但它没有编译??? 这是如何运作的?

关于main函数的命令行参数

它看起来像int main(int argc, char *argv[]); 。 我的问题是: 1我可以在argv[]添加多少个数组项? 2每个char * MAX大小是多少?