- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
//void wyslij(int pin, char mode[] = "open") { //было
void wyslij(int pin, int mode) { //стало
if (pin != -1)
{
if (mode == "open")
{
//...
else if ( (mode == "touch") && ( (error != 1) || (olej_error == 1) ) )
[кэп]Работать будет пока компилятор объединяет одинаковые константы в одну. Ну и пока кто-то не додумается передать туда не константу.[/кэп]
Указатели-то побыстрее, чем строки, сравниваются.
http://ideone.com/OjmQni
Скажем, мы эти строчки считали из файла =)
все библиотечные функции, работающие со строками, работают с указателем - им нужен указатель в регистре
код в топике тоже оперирует указателем
+ "открыть", "потрогать"
Но "вислый" мне больше нравится :-)
> mode == "open"
> числовая переменная сравнивается со строкой
> Cи
WTF_am_I_reading.jpg
Бля, у тебя кавычки одинарные.
Наебал, наебал...
А если я напишу в винде: 'ху', то получу однобайтовую кодировку, если "ху", то однобайтовую кодировку, а если L"ху", то UTF16?
компилятор всё, что встретит русского в '' или "" будет считать, как тупо последовательность байт, которую записал программист
и ему будет всё равно, это был UTF-8 или бНОПНЯ, или cp-866
в частности, русский текст исходного кода на никсовом ideone был UTF-8, и потому в программе он ведет себя как UTF-8
а если ты запишешь L"", это будет const wchar_t array[N];
""- в какой кодировке написал, то и будет, понятно.
А если написать L"", то gcc придется провести перекодировку в wchar_t. Студия соответственно перекодирует в UTF16, а gcc в UTF32. Так вот как студия и gcc определят исходную кодировку, ведь чтобы перекодировать - её нужно знать. Ключами компиляции как-то указывается?
И ещё получается, если исходник в кодировке UTF16 под виндой или UTF32 под линухом, то мы в "" получаем wchar_t, но зариентерпреткастенный в обычный char[N]?
кстати, поддерживает ли gcc 4.x BOM - не знаю
вот 3.х, сука, точно не поддерживает - периодически студия сохраняет русско-содержащие файлы в utf-8, и потом у gcc возникают непреодолимые трудности - как раз тот случай, если видишь эту ошибку в первый раз, то не понимаешь, что случилось