(static) char *xxx = "yyy"
От: fk0 Россия https://fk0.name
Дата: 09.11.10 18:15
Оценка:
Не находите, что сабжевая конструкция ((static) char *xxx = "yyy") -- суть есть паттерн гонокода?

Её бы в const *char *xxx = "yyy" переписыать или вв char xxx[] = "yyy"...
Re: (static) char *xxx = "yyy"
От: RonWilson Россия  
Дата: 09.11.10 18:19
Оценка:
Здравствуйте, fk0, Вы писали:


fk0> Не находите, что сабжевая конструкция ((static) char *xxx = "yyy") -- суть есть паттерн гонокода?


где бы такое увидеть ещ
Re: (static) char *xxx = "yyy"
От: Lorenzo_LAMAS  
Дата: 09.11.10 18:19
Оценка: :)
Здравствуйте, fk0, Вы писали:


fk0> Не находите, что сабжевая конструкция ((static) char *xxx = "yyy") -- суть есть паттерн гонокода?


не нахожу, ибо не компилируется.
Of course, the code must be complete enough to compile and link.
Re: (static) char *xxx = "yyy"
От: Vain Россия google.ru
Дата: 09.11.10 20:56
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> Не находите, что сабжевая конструкция ((static) char *xxx = "yyy") -- суть есть паттерн гонокода?

Почему?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: (static) char *xxx = "yyy"
От: winston Россия  
Дата: 10.11.10 08:22
Оценка:
Здравствуйте, fk0, Вы писали:


fk0> Не находите, что сабжевая конструкция ((static) char *xxx = "yyy") -- суть есть паттерн гонокода?


fk0> Её бы в const *char *xxx = "yyy" переписыать или вв char xxx[] = "yyy"...


Каков контекст? Внутри класса? функции? глобально? Да в любом случае что в этой конструкции криминального?
Re[2]: (static) char *xxx = "yyy"
От: Lorenzo_LAMAS  
Дата: 10.11.10 08:29
Оценка:
W>Каков контекст? Внутри класса? функции? глобально? Да в любом случае что в этой конструкции криминального?

скобки вокруг статика
Of course, the code must be complete enough to compile and link.
Re[2]: (static) char *xxx = "yyy"
От: uzhas Ниоткуда  
Дата: 10.11.10 08:37
Оценка:
Здравствуйте, Vain, Вы писали:

V>Почему?

const не хватает и может привести к проблемам в рантайме при попытке записи в ридонли секцию
Re[3]: (static) char *xxx = "yyy"
От: winston Россия  
Дата: 10.11.10 09:42
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>скобки вокруг статика


и что они значат?
проверил на VS2008 ни С++, ни С со скобками не компилит
Re[2]: (static) char *xxx = "yyy"
От: fk0 Россия https://fk0.name
Дата: 10.11.10 10:16
Оценка:
Здравствуйте, winston, Вы писали:

fk0>> Не находите, что сабжевая конструкция ((static) char *xxx = "yyy") -- суть есть паттерн гонокода?

fk0>> Её бы в const *char *xxx = "yyy" переписыать или вв char xxx[] = "yyy"...
W>Каков контекст? Внутри класса? функции? глобально? Да в любом случае что в этой конструкции криминального?

-Wwrite-strings если не C++, в C++ конструция сходу вызывает варнинг.

strsep(&xxx, "123")...
Re[4]: (static) char *xxx = "yyy"
От: Lorenzo_LAMAS  
Дата: 10.11.10 11:08
Оценка:
Здравствуйте, winston, Вы писали:

W>Здравствуйте, Lorenzo_LAMAS, Вы писали:


L_L>>скобки вокруг статика


W>и что они значат?




W>проверил на VS2008 ни С++, ни С со скобками не компилит


не знаю, что они значат — это синтаксическая ошибка. я не телепат, возможно, автор не имел в виду дословно именно такую конструкцию, возможно, он имел в виду два варианта: со статиком и без

(static) char *xxx = "yyy":

         char *xxx = "yyy";
         или
         static char * xxx = "yyy";
Of course, the code must be complete enough to compile and link.
Re[3]: (static) char *xxx = "yyy"
От: Vain Россия google.ru
Дата: 10.11.10 12:09
Оценка:
Здравствуйте, uzhas, Вы писали:

V>>Почему?

U>const не хватает и может привести к проблемам в рантайме при попытке записи в ридонли секцию
А где там RO секция?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[5]: (static) char *xxx = "yyy"
От: winston Россия  
Дата: 10.11.10 12:14
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>не знаю, что они значат — это синтаксическая ошибка. я не телепат, возможно, автор не имел в виду дословно именно такую конструкцию, возможно, он имел в виду два варианта: со статиком и без


L_L>
L_L>(static) char *xxx = "yyy":

L_L>         char *xxx = "yyy";
L_L>         или
L_L>         static char * xxx = "yyy";
L_L>


у ты еп как все закручено ну все понял, типа статик в скобках это указывает на его необязательность, хотя обычно для этого используют квадратные скобки.
тогда да, автор прав
Re: (static) char *xxx = "yyy"
От: Alexander G Украина  
Дата: 11.11.10 09:15
Оценка: :)
Здравствуйте, fk0, Вы писали:


fk0> Не находите, что сабжевая конструкция ((static) char *xxx = "yyy") -- суть есть паттерн гонокода?


Название форума C/C++ намекает на то, что конструкция может использоваться в C, где слова const нет, и константность, где она нужна, подразумевается.
также кнострукция может использоваться в С++ коде, из которого вызывается С код. В этом случае константность, которая повсеместно убирается кастами, не особо полезна.
Русский военный корабль идёт ко дну!
Re[2]: (static) char *xxx = "yyy"
От: Lorenzo_LAMAS  
Дата: 11.11.10 09:17
Оценка: 1 (1) +1
AG>Название форума C/C++ намекает на то, что конструкция может использоваться в C, где слова const нет, и константность, где она нужна, подразумевается.

есть в C const.
Of course, the code must be complete enough to compile and link.
Re[4]: (static) char *xxx = "yyy"
От: dilmah США  
Дата: 11.11.10 09:24
Оценка:
V>А где там RO секция?

ну как же -- строковый литерал, естественно помещается в RO секцию.
Re[3]: (static) char *xxx = "yyy"
От: Alexander G Украина  
Дата: 11.11.10 09:49
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>есть в C const.


Точно. Почему-то привык считать, что нет.
Т.к. встречается старый С код, где const не используется.
Русский военный корабль идёт ко дну!
Re[5]: (static) char *xxx = "yyy"
От: Vain Россия google.ru
Дата: 11.11.10 11:12
Оценка:
Здравствуйте, dilmah, Вы писали:

V>>А где там RO секция?

D>ну как же -- строковый литерал, естественно помещается в RO секцию.
А если не помещается, то разрыв шаблона?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[6]: (static) char *xxx = "yyy"
От: dilmah США  
Дата: 11.11.10 11:35
Оценка:
V>>>А где там RO секция?
D>>ну как же -- строковый литерал, естественно помещается в RO секцию.
V>А если не помещается, то разрыв шаблона?

The effect of attempting to modify a string literal is undefined.
Re[7]: (static) char *xxx = "yyy"
От: Vain Россия google.ru
Дата: 11.11.10 12:03
Оценка:
Здравствуйте, dilmah, Вы писали:

V>>>>А где там RO секция?

D>>>ну как же -- строковый литерал, естественно помещается в RO секцию.
V>>А если не помещается, то разрыв шаблона?
D>The effect of attempting to modify a string literal is undefined.
UB и RO разные вещи. Но на практике defined для конкретного компилятора и ключей компиляции.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.