- 1
enum { SIZEOF_INT_AS_STR = sizeof("4294967295,")-1 };
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+98
enum { SIZEOF_INT_AS_STR = sizeof("4294967295,")-1 };
Что это? :-O
надо sizeof("4294967295,")/sizeof("4")-1 :D
Objective-C (который является расширением языка C и сишный код с ним послностью совместим) - кодировка - utf-8:
NSLog(@"test string size: %D", sizeof("123ƒ"));
2012-04-06 14:56:37.996 test[4720:207] test string size: 6
То есть попалась буква, отличная от английской - и привет.
вот это - полная хуйня
не трогать волосатыми лапами мою сишечку!
Чего нельзя сказать о C++.
http://mobiguru.ru/f/image/8/2/0/8202_siemens_a52_1.jpg
В гробу я видал эти тормозные бесполезные "мабилы"
может вы все просто стесняетесь это сказать?
напоминаю первый шаг - признать проблему
во-первых, то, что ты видишь 123ƒ как 4 символа лишь зависит от кодировки твоего редактора, для компилятора это всё такой же нормальный массив char из 5+1 элементов
и да, что в Obj-C считает для такой строки strlen (раз он так совместим)?
ну и во-вторых, wchar_t здесь как не было, так и нет
Мы с вами не братались, но это так, лирическое отступление.
2012-04-06 16:39:23.594 test[4985:207] test string: sizeof 6; strlen 5
NSLog(@"test string: sizeof %D; strlen %D", sizeof("123ƒ"), strlen("123ƒ"));
Что делает неверным ваше предыдущее утверждение.
Конкретно про wchar_t - так и кодировка-то не та, чтобы символам вэчарами становиться, и не под виндой мы, в которуй она всё загоняет в эти самые wchar_t, находимся.
ох ничего себе предъявы
вообще то дедуктивный анализ часового пояса приведенных логов намекает на http://bit.ly/Icl36N, так что снова фейл
"английские буквы" уже намекают нам
NSLog(@"test string: sizeof %D; strlen %D", sizeof(L"123ƒ"), wcslen(L"123ƒ"));
2012-04-06 16:49:34.156 test[5065:207] test string: sizeof 24; strlen 5
NSLog(@"test string: sizeof %D; strlen %D", sizeof("123ƒ"), strlen("123ƒ"));
NSLog(@"test string: sizeof %D; strlen %D", sizeof("123f"), strlen("123f"));
2012-04-06 16:57:31.247 test[5104:207] test string: sizeof 6; strlen 5
2012-04-06 16:57:31.253 test[5104:207] test string: sizeof 5; strlen 4