2011-01-05 68 views
1

我定義一個函數「太多的參數功能」用C

int find(char *t, int len){ 
} 

然後我把它與

value = "hello world"; 
rt = find(value, strlen(value)); 

它不工作,並顯示「錯誤:太多的參數功能「發現」」

+3

發佈的代碼會給出關於缺少分號的錯誤。嘗試發佈您傳遞給編譯器的EXACT代碼 - 可能會有一些標點符號丟失,令編譯器感到困惑並導致錯誤消息。 – 2011-01-05 05:51:01

+4

這是全部在一個文件或單獨的文件中完成的嗎?在調用站點之前,「查找」的定義或原型是否已被「看到」(即,你是否做了一些類似於包含'int find(char *,int);'的頭文件)? – 2011-01-05 05:51:11

+0

謝謝!伯爾!順便提一下,我錯過了標題 – why 2011-01-05 06:02:17

回答

2
int find(char *t, int len){ 
} 

可能會給一個警告,函數應該返回一個值。

,如果你添加:

char* value = "hello world"; 
int rt = find(value, strlen(value)); 

應該正常工作,如果代碼是在一個文件中(如已經由邁克爾在評論中指出),否則你將不得不調用之前指定find函數的原型它來自一個單獨的文件。

+0

,size_t和int之間有什麼區別? – why 2011-01-05 06:47:38

+0

閱讀此:http://stackoverflow.com/questions/502856/whats-the-difference-between-size-t-and-int-in-c – 2011-01-05 06:58:37

0
  1. 有一個在你的電話一個語法錯誤,沒有;value = "hello world"

  2. 您是否#include <string.h>

0

當函數聲明和函數定義之間存在參數之間的差異時可能會發生此錯誤。

0

我在上面的代碼中發現了兩個錯誤。

你必須在函數定義的末尾提到'return'關鍵字。

您必須在初始化'值'時聲明字符指針(char *值)。