|
Вопрос # 918/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Признаюсь что я тайком изменяю Delphi с C++ Builder (хочу научиться), но программировать я всё равно буду для удовольствия на Delphi, ну а Си для работы:( !! Ну так вот... Я только начал изучать си, но не нашел, как использовать функции стандартных модулей как в дельфи? И как Объявить стантартные модули (как в Дельфи uses...)?
 |
Вопрос задал: Gooddy (статус: 3-ий класс)
Вопрос отправлен: 12 сентября 2007, 00:05
Состояние вопроса: открыт, ответов: 3.
|
Ответ #1. Отвечает эксперт: Матвеев Игорь Владимирович
Здравствуйте, Груздев Денис Андреевич Wallpk!
Как же Вы учитесь без примеров? найдите побольше и разбирайте - это самый быстрый и надежный способ освоения языка.
Что косается вопроса: добавление модулей делается с помощью директивы прекомпилятора #include "имя_файла", имя файла также может быть обрамлено знаками <>. Вызов функций не отличается от Паскаля, кроме только того, что в С принято даже если функция/процедура не имеет параметров все равно завершать имя функции скобками.
Вызов методов класса также как в Delphi, только вместо точки используется ->. А вот члеты типа-записи отделяются также, точкой.
Купите какой-нибудь самоучитель по С++, т.к. по далеко не все в синтаксисе C++ можно понять из аналогии с Delphi - C++ намного более сложный язык (но и "мощный" в тоже время).
Ответ #2. Отвечает эксперт: Feniks
Здравствуйте, Груздев Денис Андреевич Wallpk!
В файле myfile.cpp вверху добавлаем хедеры, т.е. файлы *.h :
#pragma hdrstop
//------------------------
#include "имя_файла.h"
//------------------------
#pragma package...
А в файле myfile.h вверху добавлаем модули *.hpp :
#ifndef DBH
#define DBH
//------------------------
#include <Classes.hpp>
#include <Forms.hpp>
#include <ActnList.hpp>
#include <Buttons.hpp>
#include <ComCtrls.hpp>
#include <Controls.hpp>
#include <DBCGrids.hpp>
#include <DBCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Mask.hpp>
#include <StdCtrls.hpp>
#include "somestruct.hpp"
Стандыртные модули/библиотеки принято брать в знаки <>, а свои, самописанные, в "".
 |
Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 12 сентября 2007, 15:42
Оценка за ответ: 5
Комментарий к оценке: 4 года прошло =)
|
Ответ #3. Отвечает эксперт: Вадим К
Здравствуйте, Груздев Денис Андреевич Wallpk!
Ну почему измена? Если хочеться быть нормальным програмистом, то другие языки просто нужно знать. К тому же есть такое дело как MSDN и для получения информации оттудова Си нужен
По поводу стандартных функций. В си принято своё распределение функций по подключаемым файлам (хидерам).
Например просто так пользоваться функцией синус нельзя - компилятор не найдёт. надо подключать хидер Math.h
Для остальных нужно читать справку. Можно заметить, что некоторые подключаемые хидеры пишуться без буковки h и точки. Это последствия стандартизации и на данный момент для многих файлов допустимы оба варианта.
Также следует заметить, что дериктива include аналогична делфовскому {$I имя файла}
тоесть она просто вставляет указанный файл в указанное место. Надо помнить об этой особенности.
Теперь об отличии конструкций
#include <>
#include ""
Первая ищет файлы начиная с системых каталогов(обычно это каталог include где то в каталоге компилятора) а вторая вначале ищет файлы в каталоге файла, в котором она использована, а лишь потом в системных. Тоесть можно всегда писать в кавычках, но это немного замедлит компиляцию и затруднит понимание исходников другими пользователями
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 12 сентября 2007, 16:28
Оценка за ответ: 5
Комментарий к оценке: 4 года прошло =)
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|