VSCODE: Intellisense не распознает определение структуры, которое определено в другом .c-файлеC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 VSCODE: Intellisense не распознает определение структуры, которое определено в другом .c-файле

Сообщение Anonymous »

Я работаю с Vscode, и Intellisense говорит мне, что «неполный тип» «some_struct» не допускается./C ++ (70) »для структуры. Struct "some_struct" объявляется в файле заголовка ("Structs_header.h"), который включен в заголовок (my_header.hpp) моего источника (my_souce.cpp). У Intellisense, очевидно, нет проблем с поиском этого, так как я могу «пойти на декларацию». Когда я использую функцию, объявленную в одном и том же файле заголовка ("Structs_header.h") и определяется в том же исходном файле ("structs_definition.c"), Intellisense не вина об отсутствующем определении. Путь к заголовому файл находится в c_cpp_properties.json. Я не мог найти никаких других настроек, чтобы исправить это в файле .json. Что я делаю не так?#include "MyHeader.hpp"

MyClass::MyClass()
{
InitTimer();
some_struct test = function_from_structs_header();
};
< /code>
myheader.hpp:
#include
#include
#include
#include

#define CLOCKID CLOCK_REALTIME
#define SIG SIGRTMIN

class MyClass
{
public:
MyClass();
int InitTimer();
};
< /code>
structs_header.h:
#ifndef __STRUCTS_LIB_H__
#define __STRUCTS_LIB_H__

#include
#include
#include

#ifdef __cplusplus
extern "C" {
#endif

struct some_struct;

struct some_struct *function_from_structs_header(const char *path);
< /code>
structs_definition.c:
#include

struct some_struct {
int fd;
char *path;
};

struct some_struct *function_from_structs_header(const char *path)
{
some_struct ret;
DoSomething();
return ret;
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... defined-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»