![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Есть два оператора препроцессора "#" & "##".
Я никак не могу представить случая, когда в них есть необходимость. У вас были такие случаи? Или просто пример приведите, пожалуйста. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Ulysses4j |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: 4 Всего: 10 |
У Эккеля в TIC++, vol.1, chap.9 есть подраздел "More preprocessor features"; говорит, # - для дебага и трассировки кода - самое то, а ## может повысить ридабилити...
-------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
||||||||
|
|||||||||
| FiMa1 |
|
||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: 5 Всего: 6 |
Для управления строками в макросах сучествует 2 оператора - оператор взятия в кавычки '#' и оператор контактенации '##'. Оператор '#' берет в кавычки следуючие за ним символы до очередного пробела, например, если объявить так:
тогда
равносильно
Оператор '##' используется для контактенации строк, то есть "склеивания" нескольких строк в одну. Например, у вас есть несколько функций с именами MyFirstFunc(), MySecondFunc(), MyThirdFunc() и т.д. Для их вызова можно определить макрос:
и вызывать функции MyFirstFunc(), MySecondFunc() ,MyThirdFunc() и т.д. макросом CALLFUNC:
См. также пример в аттаче. У многих компиляторов есть ряд встроенных макросов. Наиболее распостраненные - __DATE__ , __TIME__ , __LINE__ , __FILE__ , которые заменяются текущей (на время компиляции) датой, временем, номером строки и именем исходного файла соответственно. Встроенные макросы можно использовать без объявления:
Результат:
Это сообщение отредактировал(а) FiMa1 - 15.6.2007, 08:33 Присоединённый файл ( Кол-во скачиваний: 5 )
macroses.rar 0,53 Kb |
||||||||||||||
|
|||||||||||||||
| MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
уже как-то приводил пример
1.
2. вот оформление экспорта символа
использование
в итоге в скомпонованном образе (флрматном или бинарном) появится секция .k2export, которая содержит 1) Размер символического представления символа 2) Адрес символа 3) Имя символа Это сообщение отредактировал(а) MAKCim - 15.6.2007, 09:48 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Пробела после "string" не будет. А вообщем: solved Это сообщение отредактировал(а) Rickert - 15.6.2007, 13:46 -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |