Re[6]: Compile-time strlen
От: lifrsdn  
Дата: 01.12.07 10:55
Оценка:
Здравствуйте, MShura, Вы писали:

...

MS>Приведенное решение упрощало работу с длинными запись

MS>
MS>f( "VeryLongVeryLongVeryLongVeryLongVeryLongVeryLongString", sizeof("VeryLongVeryLongVeryLongVeryLongVeryLongVeryLongString")-1 );
MS>

MS>до такой
MS>
MS>#define STR_HELLO "VeryLongVeryLongVeryLongVeryLongVeryLongVeryLongString"
MS>f( STR_HELLO, sizeof(STR_HELLO)-1 );
MS>


MS>По сгенеренному коду два примера будут одинаковые

MS>Никакого лишнего overhead'а ни при каких опциях компиляции.

Даже если там будет короткая строка, то второй подход предпочтительней, чтобы избежать f("hello",sizeof("helo")) или чего-то в этом роде.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Compile-time strlen
От: Erop Россия  
Дата: 01.12.07 11:40
Оценка:
Здравствуйте, lifrsdn, Вы писали:

L>А поподробней в этом месте, пожалуйста.

Ну когда-то можно было полазать грязными лапами внутри литерала...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Compile-time strlen
От: MShura  
Дата: 03.12.07 11:10
Оценка:
Здравствуйте, LelicDsp, Вы писали:

L>>>Хм, как насчет того, что дублируются строки? А если они длинные?

LD>Нефига они не дублируются, sizeof() вычисляется на этапе компиляции, это не вызов функции.
Вы о чем? Кто с этим спорит?


MS>>#define STR_HELLO "Hello"

LD>После обработки препроцессором это даст тотже самый sizeof("Hello")
Что Вы хотели этим сказать и к чему?
Re[3]: Compile-time strlen
От: gear nuke  
Дата: 10.12.07 01:53
Оценка:
Здравствуйте, lifrsdn,

__>>
__>>static char const my_array[] = "aa";  //No Copy
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.