Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: CL | DM;

Вниз

Существуют ли программы перевода сишных макросов в Паскаль?   Найти похожие ветки 

 
Одя   (2007-01-18 06:46) [0]

Если есть сами макросы и их вызовы. Чтобы программа сама осуществила все подстановки.

Перевести хочется вот это: http://opende.svn.sourceforge.net/viewvc/opende/trunk/include/ode/odemath.h?revision=1041&view=markup

Какой урод эти макросы выдумал? Ни типов, ни смысла без параметров не определить. Не чтение кода, а разгадывание ребусов.


 
Vga ©   (2007-01-19 23:39) [1]

> [0] Одя   (18.01.07 06:46)

Можно думаю развернуть макросы стандартным препроцессором С, это cpp32.exe в BCC или cpp.exe в GCC/MinGW.


 
palva ©   (2007-01-20 00:00) [2]

Стандартный препроцессор дает очень плохой текст буквально по одному идентификатору на строчке. Компилятор понимает такой текст слету, а человеку читать очень трудно. По-моему гораздо проще разобраться в исходниках по ссылке. Там очень простая логика и ясное изложение.


 
Одя   (2007-01-20 06:53) [3]


> Vga ©   (19.01.07 23:39) [1]
> > [0] Одя   (18.01.07 06:46)
> Можно думаю развернуть макросы стандартным препроцессором
> С, это cpp32.exe в BCC или cpp.exe в GCC/MinGW.

А как именно это сделать? cpp32.exe есть.


> palva ©   (20.01.07 00:00) [2]
> Стандартный препроцессор дает очень плохой текст буквально
> по одному идентификатору на строчке. Компилятор понимает
> такой текст слету, а человеку читать очень трудно. По-моему
> гораздо проще разобраться в исходниках по ссылке. Там очень
> простая логика и ясное изложение.

Что, издеваешься чтоли?


 
Одя   (2007-01-20 06:57) [4]

И ещё. Как переводится в Паскаль такое ?

invert_normal = ((expr1) < 0);


и


...
onborder = 1;
..
 if (!onborder) {...


 
Одя   (2007-01-20 07:06) [5]

И ещё:
 collide_bits = ~0;

Примерно ноль ? :)

Может быть есть какие нибудь книжки, для тех, кто знает Паскаль, но хочет изучить и Си++. Чтобы было описано что чему соответствует.


 
Sergey Masloff   (2007-01-20 07:21) [6]

Там настолько много не соответствует вообще ничему что никто такие книжки писать не будет. Одним словом нет. Если кто-то хочет изучить C++ он должен иметь полгодика свободного времени и пару хороших книжек. И других вариантов нет


 
ANTPro ©   (2007-01-20 11:24) [7]

> [4] Одя   (20.01.07 06:57)
> invert_normal = ((expr1) < 0);

invert_normal := expr1 < 0;


> [4] Одя   (20.01.07 06:57)
> onborder = 1;
> ..
> if (!onborder) {...

onborder := 1;
..
if not bool(onborder) then ...


Практически наугад : )


 
palva ©   (2007-01-20 11:34) [8]

Одя   (20.01.07 07:06) [5]

> Что, издеваешься чтоли?
Издеваюсь. Но препроцессор ты попробуй. Убедись, что яснее не будет.

> invert_normal = ((expr1) < 0);
Если invert_normal булевская, то так и будет invert_normal = expr1 < 0;
Если invert_normal целая, то if (expr1) < 0 then invert_normal = 1 else invert_normal = 0;

> if (!onborder) {...
if onborder = 0 then begin

> collide_bits = ~0;
collide_bits = not 0;


 
palva ©   (2007-01-20 11:37) [9]

Ну вот начал на си читать и все паскалевские присваивания написал по сишному На самом деле вот так будет:

> invert_normal = ((expr1) < 0);
Если invert_normal булевская, то так и будет invert_normal := expr1 < 0;
Если invert_normal целая, то if expr1 < 0 then invert_normal := 1 else invert_normal := 0;

> if (!onborder) {...
if onborder = 0 then begin

> collide_bits = ~0;
collide_bits := not 0;


 
ors_archangel ©   (2007-01-20 11:58) [10]


> Если invert_normal целая, то if expr1 < 0 then invert_normal
> := 1 else invert_normal := 0;

Я за
invert_normal := ord(expr1 < 0)


 
Одя   (2007-01-21 07:37) [11]


> ANTPro ©   (20.01.07 11:24) [7]
>
> > [4] Одя   (20.01.07 06:57)
> > invert_normal = ((expr1) < 0);
>
> invert_normal := expr1 < 0;

invert_normal - число.
Меньше нуля - это сколько именно?


> palva ©   (20.01.07 11:34) [8]
> Но препроцессор ты попробуй. Убедись,

Ты можешь нормально объяснить как его попробовать?


 
Vga ©   (2007-01-22 20:03) [12]

> [11] Одя   (21.01.07 07:37)

Запусти из командной строки cpp32 - он выведет памятку по использованию.
Примерно:
cpp32 -I<include_files_directories> -o<outfile.ext> infile.ext


 
palva ©   (2007-01-22 20:46) [13]

>> invert_normal := expr1 < 0;
> invert_normal - число.

Ну тогда
if expr1 < 0 then invert_normal := 1 else invert_normal := 0;



Страницы: 1 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
2-1169714035
Wahnsinng
2007-01-25 11:33
2007.02.11
Получить тег


2-1169473359
FIL-23
2007-01-22 16:42
2007.02.11
Белый шум


15-1169130890
Stanislav
2007-01-18 17:34
2007.02.11
Кто настраивал GPS/GPRS трекеры?


6-1157130974
KOLYA-rzn
2006-09-01 21:16
2007.02.11
Попытка написать rAdmin. Вопросы по Indy


1-1166031886
transp
2006-12-13 20:44
2007.02.11
Панель без "отрисовки"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский