#c #eclipse #size-t
#c #eclipse #размер-t
Вопрос:
Я разработаю одно приложение на c с использованием eclipse. Моя проблема в том, что используемая переменная типа size_t отлично работает в first.cpp файл, но не работает в second.cpp файл для того же проекта.
Объявление переменной типа
size_t myVariable;
В нем говорится «Тип size_t не удалось разрешить»
Комментарии:
1. вы включили файл заголовка в second.cpp для size_t?
2. Измените его на
std::size_t
и сделайте#include <cstddef>
вверху.3. @Nipun Ya Я добавляю весь файл заголовка, но в моем first.cpp в файле использовался процедурно-ориентированный код и мой second.cpp файл содержит объектно-ориентированный код.
4. @Simple Извините, на самом деле я использовал std::size_t, тогда это тоже не работает …!
5. @Devani, тебе лучше опубликовать свой код. Без этого было бы трудно понять. Если у вас есть редактор VS, попробуйте запустить то же самое и для него. Это поможет вам определить, происходит ли это из-за редактора eclipse или нет, как вы упомянули в вашем вопросе.
Ответ №1:
Вам не хватает include в вашем second.cpp файл. Попробуйте добавить, т.е.:
#include <cstdlib>
в этом файле. Тогда size_t
должно быть разрешимым.
Заголовочные файлы внутри size_t
определены следующим образом:
<cstddef> <cstdio> <cstdlib> <cstring> <ctime> <cwchar>
Смотрите также: здесь
В случае, если вы не используете, using namespace std;
вам все же придется написать std::size_t
. Если вы хотите size_t
включить в свое глобальное пространство имен, вы можете включить вместо этого — но я бы не советовал этого делать, потому что это устарело и загрязняет глобальное пространство имен.
Комментарии:
1. MSDN сообщает STDDEF. H для size_t
2.
stddef.h
не рекомендуется в C , поскольку оно помещает каждое имя в глобальное пространство имен. Вместо этого лучше использовать<cstddef>
. Смотрите также здесь .
Ответ №2:
typedef unsigned int size_t;
помогает. поправьте меня, если я ошибаюсь.
Комментарии:
1. я не могу найти site_t в visualstudio2017-workload-nativedesktop