Программирование на СИ. ( в чём ошибка? )

Тема в разделе "WASM.BEGINNERS", создана пользователем stellaco, 24 май 2009.

  1. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    Добрый вечер, в данный момент делаю не большую программу на си. И при попытке компиляции на gcc выползают вот эти ошибки

    В ../Include/system/unix/functions.h написано вот это
    ошибка в этой строке void system_configuration_func ( system_conf_struct * system_conf )
    Структура system_conf_struct объявлена в ../Include/system/unix/structure.h и вот содержание файла
    Вот код start.c

    Помогите найти проблему...или проблемы)
     
  2. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
    функция не определена
    она должна быть в с-файле чтобы попасть в объектный файл
    либо должна быть встраиваемой и тогда можно оставить в хидере

    а насчет этого - просто нужно вставить энтер в конце файла
     
  3. Clear__Energy

    Clear__Energy New Member

    Публикаций:
    0
    Регистрация:
    30 янв 2009
    Сообщения:
    432
    английский всем учить
     
  4. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    Clear__Energy
    Дело не в английском было... ( ведь можно компилятор и на вывод русского текста поставить. )

    Я думал , что вообще что-то не так делаю ( на самом деле код достаточно большой, и там ооочень много объявлений в разных файлах ). Думал, что накосячил с include ..и что их нужно в какомто эдаком порядки ставить.


    BigGreen
    Огромное спасибо за ответ. Помогло.
    Простите за глупый вопрос. Как сделать функцию system_configuration_func( &system_conf ); встраиваемой , так как очень важно оставить её именно в .h файле
     
  5. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
    stellaco
    ?
    в студии например __forceinline помогает
    про gcc хз
    просто inline не гарантирует что компилятор встроит код
    попробуй вобщем
     
  6. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    BigGreen
    inline не помогает..
    щас буду другие методы пробовать.
     
  7. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
    stellaco
    не проще просто прототип объявить в хидере?
    какая тебе разница встраиваемая эта функция или нет? )
     
  8. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    Объявлял прототип в хидере... да и в start.c
    никакой разницы) вот это выдаёт

    Код (Text):
    1. In file included from start.c:14:
    2. ../Include/system/unix/functions.h:16: ошибка: expected ‘)’ before ‘*’ token
    3. start.c: В функции ‘main’
    4. start.c:22: предупреждение: return type of ‘main’ is not ‘int’
    5. start.c:33:2: warning: no newline at end of file
    пишет что ошибка тут void system_configuration_func ( system_conf_struct * system_conf )
    блин)) не знаю что делать.......
     
  9. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
    ну ты если показываешь ошибки то и строки приводи
     
  10. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
    а это жесть вобще )
    не проще
    заюзать?
     
  11. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    ../Include/system/unix/functions.h:16
    выглядит так

    вот главный файл

     
  12. BigGreen

    BigGreen New Member

    Публикаций:
    0
    Регистрация:
    19 май 2009
    Сообщения:
    34
     
  13. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    BigGreen
    Спасибо огромное)))
    всё..буду дальше сам разбираться)))..
    ещё раз спасибо за потраченное на меня время
     
  14. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    stellaco
    А как известно, что inline не помогает? В RELEASE-е проверил?
     
  15. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    AsmGuru62
    Ничего не проверял, это я говорил о том, что при вставке inline в в код... синтаксис компилятором не воспринимается.


    У меня ещё один вопрос (вероятно глупый) но всё же задам,
    У меня есть структура, назовём её conf_struct
    и мне нужно передать ссылку на неё определённой функции, которая сделает с её элементами какието действий. назовём функцию.. conf_func
    и я делаю примерно подобный синтаксис.
    объявляем функцию: conf_struct & conf_func ( conf_struct & conf_struct_name ) { код код код return conf_struct_name; } она должна вернуть ссылку, на модифицированную структуру

    conf_struct conf_struct_name ; // (создали структуру типа conf_struct_name )
    conf_func ( conf_struct_name ); // передали conf_func , структуру conf_struct_name



    компилятор ругается вот на это conf_struct & conf_func ( conf_struct & conf_struct_name ) ошибка: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘&’ token

    Проверил, всё ли норма с синтаксисом...по книге..ошибок не нашёл.
    Что не так? (помимо моих кривых рук..)
     
  16. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    это си? тогда опять всё та же ошибка:
    struct conf_struct & conf_func ( struct conf_struct & conf_struct_name )

    + Си не поддерживает ссылки. Переделай на указатели, либо переходи на C++.
     
  17. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    сейчас изменил имя компилируемого файла на *.cpp ... попытался скопилировать.
    и вот , что выдал компилятор

    Как это "расшифровать"?
     
  18. letopisec

    letopisec New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2004
    Сообщения:
    228
    компилятор g++ ?
     
  19. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    letopisec
    gcc
     
  20. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    ) откомпилировал через g++ .... =)

    Сейчас выдаёт только этот текст
    И ошибку сегментирования при ./a.out ( но это уже ошибка кода........сам поправлю )