Имя: Пароль:
LIFE
 
OFF: Есть знающие С++ ? ...простенький вопросик наверное
0 palpetrovich
 
29.08.13
13:24
Что такое '\0' в if (PaidCode=='\0') если тип PaidCode - char ?
1 fmrlex
 
29.08.13
13:27
Пустая строка имхо
2 palpetrovich
 
29.08.13
13:28
+0? может так проще будет:
int CALLBACK Total(HWND hwnd, void(CALLBACK *Fn), LPARAM UI, LPSTR Comment, char PaidCode, double Amount)
{
    char TmpFloat[200];
    
    strcpy(TmpFloat,"%s\tP%-#.2lf");
    
    if (PaidCode=='\0') TmpFloat[3]='P';
    else TmpFloat[3]=PaidCode;
  
    sprintf(Tmp, TmpFloat, Comment, Amount);

    return SendCmdAll(hwnd,Fn,UI,53,Tmp);
}
3 Starhan
 
29.08.13
13:28
проверка на пустую строку

чар в с++ оканчивается нолем
4 palpetrovich
 
29.08.13
13:28
(1) тоже так думаю, но длина типа char - как-бы 1...
5 Wobland
 
29.08.13
13:29
(4) НЕ ЗначениеЗаполнено()
6 fmrlex
 
29.08.13
13:29
(4) Тут скорее проверяется то, что в PaidCode совсем пусто
7 palpetrovich
 
29.08.13
13:29
(1)(3) ну что-ж, примем за аксиому,  спасибо :)
8 palpetrovich
 
29.08.13
13:30
ок, спасибо
9 Starhan
 
29.08.13
13:30
погугли по точнее про строки в с++
10 fmrlex
 
29.08.13
13:32
(9) Еслиб передавалась строка то было бы вот так "char * PaidCode"
11 AAlexandra
 
29.08.13
13:33
(0) Строки в Си заканчиваются нулевым символом '\0'..
12 Trotter
 
29.08.13
13:33
а я думал '\0' конец строки
13 fmrlex
 
29.08.13
13:33
+(10) Строки в С не передаются никогда, только указатели.
14 Rie
 
29.08.13
13:35
(0) Это - число 0 (1-байтовое). И не более того.
15 Rie
 
29.08.13
13:37
(3) Была бы проверка на пустую строку, если бы разыменованный указатель в нулём сравнивается. А у него - просто переменная типа char.
Просто кто-то решил экономить память и чего-то кодировать именно байтами.
16 Rie
 
29.08.13
13:37
(10) +1
17 Rie
 
29.08.13
13:37
(12) Или просто число 0 :-)
18 fmrlex
 
29.08.13
13:42
(17) Ну да в сях объявить строку, а потом заюзать ее как массив двубайтных целых это в порядке вещей. Едиственно, вся эта вакханалия повышает требования к уровню вменяемости разработчика.
19 Rie
 
29.08.13
13:44
(18) Просто char в C/C++ - это подтип целых. Не более того. И воспринимать его обязательно как символ - несколько неправильно.
20 Rovan
 
гуру
29.08.13
13:51
(+4) char PaidCode - это строка размером 1 (т.е. 1 символ)
21 MKZM
 
29.08.13
14:01
это коллбэк функция при нажатии функциональной клавиши. Там смотрится не нажата ли еще и какая клавиша
22 Принт
 
29.08.13
22:48
'\0' -это символ с кодом 0, Ъ!
23 palpetrovich
 
30.08.13
11:07
(21) пальцем в небо :)

Народ, а "int*"  - это какой тип данных? сильнодлинныйинтеджер? :)
24 fmrlex
 
30.08.13
11:09
(23) Это указатель на инт
25 MaxisUssr
 
30.08.13
11:10
(23)
Это указатель
26 Кирпич
 
30.08.13
11:12
(0) хватит придуриваться. в инете валом информации по Си и Си++
27 palpetrovich
 
30.08.13
11:16
(24) спасибо
(26) я не собираюсь изучать  Си++, мне просто надо из dll-ки, написанной на ней, вызвать пару-тройку функций
28 Torquader
 
30.08.13
22:07
Символ с кодом 0, в Си (как и во многих других языках) это конец строки.
Поэтому, строка только из одного символа с кодом 0 на конце - это аналог "" в 1С, то есть пустой строки.
Не надо путать с указателем на 0l, который по сути Null, а не строка.
29 Принт
 
30.08.13
23:41
Я помню чудное мгновенье: передо мной явилось (2)