powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / макросы
10 сообщений из 10, страница 1 из 1
макросы
    #33980320
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Вопрос. Зачем писать:

Код: plaintext
1.
#define __stringify_1(x) #x
#define __stringify(x)          __stringify_1(x)

если можно просто написать:
Код: plaintext
#define __stringify(x) #x

?
...
Рейтинг: 0 / 0
макросы
    #33980369
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть только предположение.

Например, от макроса m1 зависят макросы m2,m3,m4,m5. При этом при постоянных изменениях в проекте макрос m1 во время разработки менялся то на #define m1(x) (x),
то на #define m1(x) (x)+(x) . Естественно, что макросы m2 - m5 используют m1 чтобы делать одно изменение вместо 4 или 5.

В последующем, при проектировании выяснилось, что m3,m4,m5 никому не нужны, а m1 и m2 должны совпадать, но часть модулей использует m1 , а другая m2.

Поэтому и остался такой бесмыссленный огрызок

Offtop

Пишет несколько человек одну и ту же функцию(таких штук 50 на проект), внося разные изменения в зависимости от требований.

Каждый новый комментирует немногое неправильное и добавляет чуть-чуть
нового, так как появились требования на изменения. Требования могут идти по кругу, поэтому всё неиспользуемое коментируется. После десятка изменений , когда требования утрясутся, можно переписывать функцию заново, так как разобраться невозможно, что она делает.Правда относится этот offtop к хранимкам в скл
...
Рейтинг: 0 / 0
макросы
    #33980438
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bemtaillВсем привет. Вопрос. Зачем писать:

Код: plaintext
1.
#define __stringify_1(x) #x
#define __stringify(x)          __stringify_1(x)

если можно просто написать:
Код: plaintext
#define __stringify(x) #x

?

stringify - эта одна из возможных реализация stringify_1. Можно придумать сколько угодно sttringify_xxx, а потом выбрать для своей программу нужную тебе в данный момент реализации, не лазя по коду программы.
Надо тебе дебаг включить ставишь первую реалзацию, лог - вторую, реалазе - 3-ю, с новым форматом - четвертую и т.д.
...
Рейтинг: 0 / 0
макросы
    #33980442
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То же самое можно делать, пиша реалзацию по новой, а старую коментаря. Это более красивый метод.
...
Рейтинг: 0 / 0
макросы
    #33980513
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понятно. спасибо.
...
Рейтинг: 0 / 0
макросы
    #33980522
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, раз уж спросил. как кто относится к данному макросу для приведения int => char *. кто-нить юзал? (прога под Линукс)
...
Рейтинг: 0 / 0
макросы
    #33980574
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bemtaillкстати, раз уж спросил. как кто относится к данному макросу для приведения int => char *. кто-нить юзал? (прога под Линукс)

Юзал int <-> void *
int <-> char *
int <-> что попало *

Отношусь отрицательно. Юзаю и сейчас(только в крайних случаях). В принципе пользую копирование 4-х байт.
...
Рейтинг: 0 / 0
макросы
    #33980609
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh...
Юзаю и сейчас(только в крайних случаях). В принципе пользую копирование 4-х байт.

а почему не рекоммендуется? и че значит копирование 4-х байт?:)
...
Рейтинг: 0 / 0
макросы
    #33980686
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bemtaill Akh...
Юзаю и сейчас(только в крайних случаях). В принципе пользую копирование 4-х байт.

а почему не рекоммендуется? и че значит копирование 4-х байт?:)

Приведение типов вообще не рекомендуется, желательно делать все корректно. Систаема сама приводит типы молча, тогда когда надо int*int = int ли long (в жабе точно, а сях думаю тоже). А приведение числа к указателю, это вообще уголовщина. Очень большое значение имеет размер типа. Если он не совпадают, то и начинаются разные проблемы, которые сам себе и наживаешь. Так что лучше не лениться и делать все корректно. Не передавать инт в указатель, а выделить память засунуть туда инт, и передать указатель на него.
Копирование 4-х байт, это просто memcpy на 4-ре байта, что бы компилятор варнингами не ругался. ;)
...
Рейтинг: 0 / 0
макросы
    #33980775
bemtaill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пасиб, буду исправляться:)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / макросы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]