LINUX.ORG.RU

ошибка при компиляции в си

 ,


0

1

Доброе время суток. Ввожу такой код:


#include <stdio.h>
void main()
{ 
 struct goods {
		char* name;
		long price;
		float percent;
		int vol;
		char date[9];
	      };

 struct goods coat={
  "pidgak chernii", 40 000, 7.5, 220, "12.01.97"};

 printf("\n Tovar na sclade:");
 printf("\n Naimenovanie: %s.", coat.name);
 printf("\n Optovaya cena: %ld rub.", coat.price);
 printf("\n Nacenka: %4.1f %%.", coat.percent);
 printf("\n Ob`em partii: %d sht.", coat.vol);
 printf("\n Data postavki: %s", coat.date);
}

При попытке компилировать выходит ошибка: noname.c: In function ‘main’: noname.c:12:24: error: expected ‘}’ before numeric constant «pidgak chernii», 40 000, 7.5, 220, «12.01.97»};

Где в коде ошибка-то? Компиляторы из: gcc, онлайн IdeOne, Turbo C. Везде такая ошибка выходит.



Последнее исправление: marsiver (всего исправлений: 3)

Ответ на: комментарий от EXL

Ё-моё!!!

Вот я лошара!! Спасибо. Нее))) Просто лень с кодировками возиться)))

marsiver
() автор топика

Странный какой-то язык. Чем-то на сербский похож, но почему-то латинницей…

anonymous
()
Ответ на: комментарий от anonymous

Ага!!)) Называется «Хреновый транслит» ))))

marsiver
() автор топика

Кстати, начиная с C++14, можно использовать апостроф для разделения разрядов.

int price = 40'000;

Это компилируется. Но если у тебя чистый си, то там такого нет.

Crocodoom ★★★★★
()

На будущее: для обрамления кода программы используй тег code. Код будет более компактный, читаемый, шрифт - моноширинный. для наиболее известных ЯП работает подсветка (для C точно работает), и не будет автозамен, заточенных под естественный язык.

hobbit ★★★★★
()

На будущее, не пиши

void main()
это не соответсвует стандарту языка С. По стандарту(http://open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf):
N1570 
Committee Draft — April 12, 2011
ISO/IEC 9899:201x
5.1.2.2.1  Program  startup

The function called at program startup is named main. The implementation declares no
prototype  for  this  function.   It  shall  be  defined  with  a  return  type  of int and  with  no
parameters:
    int main(void) { /*...*/ }
or with two parameters (referred to here as argc and argv, though any names may be
used, as they are local to the function in which they are declared):
    int main(int argc, char *argv[]) { /*...*/ }
or equivalent; or in some other implementation-defined manner.

fsb4000 ★★★★★
()

Эх, опередили. Пробел между разрядами не ставь, да. И void main() на всяких МК используют, в целях экономии нескольких бит памяти. Правильнее int main() и возвращать EXIT_SUCCESS или EXIT_FAILURE.

Meyer ★★★★★
()
Ответ на: комментарий от anonymous

Странный какой-то язык. Чем-то на сербский похож, но почему-то латинницей…

Товарищ анонимус, наверное, забыл, что в сербском два алфавита: кириллица и латиница.

Virtuos86 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.