У меня есть приложение TCP / IP на C. У меня есть 1 файл заголовка для обработки вещей, связанных с TCP / IP, и 1 основной файл для вызова всех функций.Так как проблема происходит на стороне клиента, я публикую только свой код на стороне клиента.
Вот файл program.c
#include "tcpHeader.h"
#include <pthread.h>
#include <stdio.h>
int main(int argc, char **argv){
// all code regarding connecting to server on TCP on another thread.
// Join here after completing the thread execution
// It works completely fine upto the next line.
testFunctionFromMyHeader();
// after executing below line, program do not continue with 'void' return type of the function.
// But it works if I change return type to 'int'
waitForAMessageFromServerAndSendConfirmation(12345678901LL);
// program expects me to return an integer on last function call
// & all other calls from now.
// even if I don't need integer return type.
testFunctionFromMyHeader();
return 0;
}
Вот файл tcpHeader.h
#ifndef CLIENT_TCP
#define CLIENT_TCP
// all required headers.
// all global variables
void testFunctionFromMyHeader(){
printf("Test Function");
}
void waitForAMessageFromServerAndSendConfirmation(unsigned long long args){
// wait until receiving data from server in recv() function.
// received 'args' is used in processing the data.
// process the data received
// send the confirmation message to server in send() function.
// Server also received this confirmation without any problem on server side.
// all code in this function also worked properly.
// Even the next printf line is also executed.
printf("All operation completed.");
// with 'void' return type, next line does not make any difference.
// But if I return an 'int' then it works.
return NULL;
}
#endif
Останавливается на waitForAMessageFromServerAndSendConfirmation (unsigned long long) в program.c
, но если я делаю это в program.c, то это работает. (Возвращает тип для функций из tcpHeader.hтакже изменены на соответствующие типы)
int confirmation = waitForAMessageFromServerAndSendConfirmation(12345678901LL);
if( confirmation == 0 ){ // 0 or any int value
int testFunctionReturnedValue = testFunctionFromMyHeader();
.
.
.
// keep going like this with int return type FOR ALL FUNCTIONS
}
Помогите мне определить проблему.Я не хочу везде использовать типы возврата int.
- Почему это заставляет меня иметь возвращаемый тип int для функции waitForAMessageFromServerAndSendConfirmation (unsigned long long) в моем заголовочном файле
- Почему это заставляет меня возвращать типы int для всех функций, вызываемых после этой.