为什么我不能在C中将两个字符作为函数参数传递?

时间:2009-11-15 22:08:55

标签: c function char

我有一个功能:

int get_symbol(tab *tp, FILE *fp, char delim)

我称之为:

get_symbol(tp, fp, ';')

我总是在标题中声明它:

int get_symbol(tab *, FILE *, char);

不,这一切都运行正常,我可以在函数中执行代码并设置delim。 但是,如果我尝试在函数的签名中再添加一个char,如:

int get_symbol(tab *tp, FILE *fp, char delim1, char delim2)

该功能停止执行。那为什么会这样?

3 个答案:

答案 0 :(得分:1)

你应该:

int get_symbol(tab *tp, FILE *fp, char delim1, char delim2)
{
blah blah;
return 1;
}
...
...

get_symbol(tp, fp, ';','?')

你呢?

答案 1 :(得分:1)

好的,这里没有足够的信息,所以我会对答案进行疯狂的抨击。

您正在使用C ++编译器,并且没有将警告级别设置得非常高。您已经更改了函数的原型,但是在调用它时没有更改参数。由于overloading,C ++编译器将这些函数视为不同的函数,因此不会调用正确的函数。

这可能与发生的事情有所不同。如果是的话,给我们更多的东西......

答案 2 :(得分:0)

猜测“停止执行”可能意味着什么,你是否也更新了头文件中的签名?