システムは: Linux/CentOS 6.4
スコープで宣言されていない関数に対してエラーが発生し続けます。別の関数内で関数を呼び出すことは違法ですか? 関数に関する記事を読んで、関数を呼び出すときに関数を void と宣言する必要があるためだと思ったのですが、新しいエラーが発生しました。それらをグローバルに宣言する必要があるかどうかはわかりません。
client.cpp:32: エラー: 'takef' はこのスコープで宣言されていません
client.cpp:33: エラー: 'putf' はこのスコープで宣言されていません
client.cpp: 関数 'void takef(int&)' 内:
client.cpp:44: エラー: 'testa' はこのスコープで宣言されていません
client.cpp: 関数 'void putf(int&)' 内:
client.cpp:70: エラー: 'test' はこのスコープで宣言されていません
実装しようとしているコードのタイプの例
sem_t mutex;
sem_t S;
char buffer[1024];
void error(const char *msg)
{
perror(msg);
exit(0);
}
/*void signal_callback_handler()
{
close(sockfd);
}*/
void father(int &sockfd)
{
while(1)
{
srand(time(NULL));
int ms= rand() % 2000 + 5000
send(sockfd, DATA, strlen(DATA), 0);
usleep(1000*ms);
takef(sockfd);
putf(sockfd);
}
}
void takef(int &sockfd)
{
*
*
* *Other code*
*
*
*
testa(sockfd);
* *Other code*
*
*
*
}
void testa(int &sockfd)
{
*
*
*
* *Other code*
*
*
*
}
void putf(&sockfd)
{
*
*
*
* *Other code*
*
*
*
test();
test();
sem_post(&mutex);
}
int main(int argc, char *argv[])
{
*
*
*
* *Other code*
*
*
*
father(sockfd);
return 0;
}