2016-09-29 2 views
0
#include <stdio.h> 
void printMessage(void); 
int main() 
{ 
    printMessage("I know my stuff!"); 
    //leave console window on screen 
    printf("\n\nPress ENTER to continue..."); 
    getchar(); 
    //return from main routine 
    return(0); 
} //end main 
void printMessage(void) 
{ 
    printf("I know my stuff!"); 
    //return from function 
    return; 
} 

그래서이 코드를 예제로 사용하여 잘못된 점을 알아 냈습니다. Visual Studio는 실수로 printMessage("I know my stuff!"); 부분에 밑줄을 긋지 만 잘못된 점을 알지 못합니다. 어떤 도움이라도 코드를 배우는 사람에게 도움이 될 것입니다."다음 목록에 어떤 문제가 있습니까?" 함수를 배우려고했지만 도움이 필요합니다.

+3

'printMessage'는 인수를 취하지 않으며, 인자를 printMessage '. – immibis

+2

'void printMessage (void);'say "인자가 없습니다." printMessage();로 호출 될 것으로 예상됩니다. – BLUEPIXY

+0

'#include' 문과 함수 프로토 타입의 그룹은 빈 줄을 통해 구분해야합니다. 가독성을 위해 코드 블록 (for, else, while, do ... while, switch, case, default) – user3629249

답변

3

printMessage() 함수는 매개 변수를 사용하지 않기로 선언되었지만 호출은 char에 대한 포인터 즉 문자열 리터럴 "I know my stuff!"를 전달합니다. 함수에.

작동하도록 코드를 변경하는 것은 매우 간단합니다, 당신은 첫 번째 방법을 사용하는 경우)

1
void printMessage(char message []) /* You can also use void printMessage(char *message) */ 
{ 
    printf("%s\n",message); 
    return; 
} 

또는

void printMessage() 
{ 
    printf("I know my stuff!\n"); 
    return; 
} 

은 또한 상단에있는 함수 선언을 변경해야합니다 (줄 2)는 void printMessage(char message []);이됩니다. 두 번째 것을 사용하는 경우 함수를 호출 할 때 괄호 안에 아무 것도 넣지 마십시오 (행 5)

관련 문제