谁能告诉我这段代码有什么问题? 我试图通过' amount'的价值。和'计算'进入int main,显示乘法。我收到错误" C:\ Users \ XXXX \ Desktop \ collect2.exe [错误] ld返回1退出状态"突出显示int main()。谢谢。
#include <stdio.h>
void show(int, int);
int display()
{
int amount;
int count;
amount = 10;
count = 20;
return(0);
}
int main(int amount, int count)
{
show(amount, count);
int sum;
sum = amount * count;
printf("%d", sum);
return(0);
}
答案 0 :(得分:0)
错误的原因是您的主要功能的签名被ld拒绝,这是预期的,因为main的标准签名是int main(void)
和int main(int argc, char** argv)
。
如果你想将amount和count作为参数传递给main,那就是命令行参数,你应该使用我给main的第二个签名,其中argv是命令行参数的数组,而argc给出了数字argv中的元素。请注意,argv [0]不是命令行参数,而是调用程序的名称,而argv [argc]是空指针。
答案 1 :(得分:0)
您应该使用argc
和*argv[]
将命令行参数传递给main,而不是尝试定义自己的参数。
int main(int argc, char *argv[]) {
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << std::endl;
}
}
这将打印通过命令行传递给main()
的参数。
如果您通过命令行传递金额a值和计数值,您可以像这样访问它们
int main(int argc, char *argv[]) {
std::cout << "amount" << argv[1] << std::endl;
std::cout << "count" << argv[2] << std::endl;
}
使用argv
的索引1和2,因为索引0包含程序名称
你没有指定任何语言,所以我在上面的例子中使用了C ++,但C的想法是一样的:
int main(int argc, char *argv[]) {
printf("amount %s", argv[1]);
printf("count %s", argv[2]);
}
请注意,传入的值是char数组,而不是整数