мы прогоняем один файл и параллельно прогоняем =ещё и второй.
проблема с числителем все также возникает
extern "C"
{
signed __int8 a = 0, b = 1, c = 29;
signed __int16 numerator = 0;
signed __int8 denominator = 0;
signed __int8 result = 0;
void ASM_count();
}
;.586
;.model large, C
.data
extern a:sbyte
extern b:sbyte
extern c:sbyte
extern numerator:sword
extern denominator:sbyte
extern result:sbyte
;(2*a/b-1)/(a-28+c)
.code
ASM_count PROC
;///////////////////////////////numerator///////////////////////////////
xor eax, eax
mov al, 2
imul a
idiv b
cbw
dec ax
mov numerator, ax
;///////////////////////////////denominator///////////////////////////////
xor eax, eax
mov al, a
sub al, 28
add al, c
mov denominator, al
;///////////////////////////////result///////////////////////////////
xor eax, eax
mov ax, numerator
idiv denominator
mov result, al
ret
ASM_count endp
end
А можете подробнее объяснить эту конструкцию и ссылку на стандарт?
%*[^\n]
читает любые символы, кроме символа конца строки. Звёздочка после % говорит о том, что прочитанное поле не надо сохранять. Независимо от того что будет с твоим компьютером, сервер продолжит спокойно скачивать файл с внешнего источника.
а для ковыряния в чужом что нужно
с компиляторами всё просто, нужно всего-то прочитать эту книгу и будете знать всё необходимое
Он, получается, ругается на ветки в которые не должен заходить.
Побороть это никак нельзя?
#define INT_OR_0(A) _Generic((A), int: (A), default: 0)
#define CHARP_OR_NULL(A) _Generic((A), char *:(A), default: NULL)
#define FFF_B(A, BC) \
_Generic((A), \
int : _Generic((BC), \
int : fnk(A, INT_OR_0(BC), NULL), \
char * : fnk(A, 0, CHARP_OR_NULL(BC))))
Может есть опции компилятора/препроцессора?
меньше/больше/равно не считаются за однозначные ответы?
я так понимаю это отдельный вопрос: в чём разница между char *var = "Word" и char var[] = "Word"?
char *var = "Word"
-- нельзя менять, потому что указатель указывает на строковый литерал. char var[] = "Word"
-- можно менять, потому что это массив на стеке или в области данных.
есть разница в такой записи:
int main(int argc, char **argv) и int main(int argc, char[][]) и .. *argv[]) ?
int main(int argc, char[][])
так написать нельзя. Между двумя другими вариантами разницы нет. *str и str[] это разные вещи?
Я ведь в функцию отправляю указатель всё равно.
Sazoks, в "сырых" сокетах дескриптор сокета -- это файловый дескриптор. Если в него писать из двух потоков без синхронизации данные могут перепутаться. Если из него читать из двух потоков без синхронизации, данные разделятся между читателями.