我在Mac OS 10.7上使用Xcode 4.1
#include <stdio.h>
int main (int argc, const char * argv[])
{
int i, j;
i = 1;
j = 9;
printf("i = %d and j = %d\n", i, j);
swap(&i, &j);
printf("\nnow i = %d and j = %d\n", i, j);
return 0;
}
swap(i, j)
int *i, *j;
{
int temp = *i;
*i = *j;
*j = temp;
}
我收到警告“隐式声明功能”swap“在C99中无效
答案 0 :(得分:1)
在main之前声明你的函数:
void swap(int *i, int *j);
/* ... */
int main...
稍后再定义:
void swap(int *i, int *j)
{
/* ... */
}
或者,您可以合并两者并在main
之前移动整个定义。
答案 1 :(得分:0)
在C99中使用函数名称之前必须声明它。
您可以在swap
之前定义main
函数,也可以在main
之前声明函数声明。
此外,您正在使用swap
函数的旧式函数定义。此表单是C过时的功能,以下是您应该如何定义函数:
void swap(int *i, int *j)
{
...
}
答案 2 :(得分:-1)
声明变量意味着为它们保留存储空间。在使用变量之前不需要声明变量。每当VB遇到新变量时,它都会分配默认变量类型和值。这称为隐式声明