Я получаю следующие ошибки при попытке typedef структуры. Я сделал это раньше и следую тому же самому формату, что и раньше, но что-то не работает, и я полностью в тупике.Typedef C Struct: недопустимое использование неполного typedef
Shm_channel.h:
typedef struct _msgQ_info msgQ_info;
/*
* This function initializes and returns a mesQ_info struct for
* the user
*/
msgQ_info init_message_queue();
Shm_channel.c:
// Struct that contains all the message queue information
struct _msgQ_info {
mqd_t descriptor;
mode_t mode;
char *name;
};
Other_file.c:
#include <errno.h>
#include <getopt.h>
#include <signal.h>
#include <strings.h>
#include <stdlib.h>
#include <stdio.h>
#include <signal.h>
#include <mqueue.h>
#include "shm_channel.h"
//... Inside of Main()
msgQ_info msgQinfo;
msgQinfo = init_message_queue();
if(0 > open_message_queue(&msgQinfo)){
fprintf(stderr, "message queue descriptor failed to be initialized in webproxy.c\n");
return 0;
}else{
fprintf(stderr, "Message queue descriptor successfully created with value : %d\n", msgQinfo.descriptor);
}
Ошибки:
Не размещайте изображения текста! – Olaf
Как компилятор для 'Other_file.c' должен знать, насколько велика структура? И какой макет он имеет? – Olaf
Вы не можете объявлять переменные типа структуры без указания полной структуры определения.В противном случае компилятор понятия не имеет, сколько памяти выделяется для него. Поэтому переместите определение структуры из этого '.c' файла и в файл' .h'. –