@Nordman99

Что не так в Eclipse IDE?

Как настроить Eclipse IDE, может где мануалы есть хорошие по созданию проектов С/С++ в Эклипсе?
Проблема такова - стал использовать для тренировки MS Visual Studio и Eclipse IDE с плагином для C/C++ разработки, в MS Visual Studio никаких проблем, с Eclipse IDE постоянно какие то проблемы - т.е. одни и те же программы - в MSVC компилятся и потом запускаются без проблем а в Eclipse IDE то не компилятся, ошибки, то не запускаются - выкидывают ошибки, например взять простейший код:
#include <stdio.h>

 int main()
{ char x='w';
	printf (x);
	return (0);
}


В MSVC компилится без всяких ворнингов и запускается выводя в консольке буквочку 'w'
в Eclipse же сразу пишет ворнинги напротив строк:

int main() - return type defaults to 'int' [-Wimplicit-int] (Там итак int стоит какой тут может быть ворнинг?)

printf (tw); - passing argument 1 of 'printf' makes pointer from integer without a cast [-Wint-conversion]
Снизу же во время компиляции в консоли выводится такой вывод:

19:22:48 **** Rebuild of configuration Release for project Test_C1 ****
Info: Internal Builder is used for build
gcc -std=c99 -O3 -Wall -c -fmessage-length=0 -o "src\\Test_C1.o" "..\\src\\Test_C1.c" 
..\src\Test_C1.c:3:2: warning: return type defaults to 'int' [-Wimplicit-int]
  main()
  ^~~~
..\src\Test_C1.c: In function 'main':
..\src\Test_C1.c:5:10: warning: passing argument 1 of 'printf' makes pointer from integer without a cast [-Wint-conversion]
  printf (tw);
          ^~
In file included from ..\src\Test_C1.c:1:
C:/mingw64/x86_64-w64-mingw32/include/stdio.h:509:48: note: expected 'const char * restrict' but argument is of type 'char'
   int __cdecl printf(const char * __restrict__ _Format,...);
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
gcc -static-libstdc++ -static-libgcc -mwindows -o Test_C1.exe "src\\Test_C1.o" 

19:22:49 Build Finished. 0 errors, 2 warnings. (took 868ms)


передача первого аргумента в printf делает указатель из целого без обьявления - какой нафиг указатель - я дал задание команде распечатать уже ообьявленную символьную переменную которой присвоено значение.
Ну и в общем дальше в Эклипсе все с такими же непонятными трудностями, видимо что то надо донастраивать и в самом Эклипсе и в свойствах Сишного проекта иначе просто так сразу нормально работать не будет, в то время как в MSVC все работает сразу нормально, после установки самого МСВС и создания проекта, ничего дополнительно настраивать ненадо, только вот хочется больше освоить Эклипс т.к. в нём множество плагинов, кроссплатформенность ну много прочих других интересных плюшек.
Компилятор в Эклипсе у меня прописан MinGW64
  • Вопрос задан
  • 276 просмотров
Решения вопроса 2
@Mercury13
Программист на «си с крестами» и не только
printf("%c", x);
Форматную строку упустил.
Ответ написан
Первый аргумент функции printf() char * а не char. Кроме того, первый аргумент это форматный спецификатор. Т.е. правильное использование printf("%c", x).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
wisgest
@wisgest
Не ИТ-специалист
По видимому, что-то не так не с Eclipse IDE, а с MS Visual Studio. Вы передаёте printf аргумент не того типа. Правильно будет, например,
char x[]="w";
printf(x);

(конечно, ещё лучше в таком случае использовать puts, а не printf).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы