Perguntas com a marcação «c»

C é uma linguagem de programação de uso geral usada para programação do sistema (SO e incorporado), bibliotecas, jogos e plataformas cruzadas. Essa tag deve ser usada com perguntas gerais sobre o idioma C, conforme definido na norma ISO 9899 (a versão mais recente, 9899: 2018, exceto quando especificado em contrário - também tag as solicitações específicas da versão com c89, c99, c11, etc.). C é diferente de C ++ e não deve ser combinado com a tag C ++, sem um motivo racional.

1
Por que definir uma macro para uma função com o mesmo nome?
Encontrei o código abaixo em https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/atomic.h static __always_inline bool arch_atomic_sub_and_test(int i, atomic_t *v) { return GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, e, "er", i); } #define arch_atomic_sub_and_test arch_atomic_sub_and_test o que #definerealmente faz? Quando é necessário fazer isso?
12 c  linux-kernel 







1
Um valor de char definido como CHAR_MAX é garantido para envolver CHAR_MIN?
Meu código: #include <stdio.h> #include <limits.h> int main() { char c = CHAR_MAX; c += 1; printf("CHAR_MIN=%d CHAR_MAX=%d c=%d (%c)\n", CHAR_MIN, CHAR_MAX, c, c); } Resultado: CHAR_MIN=-128 CHAR_MAX=127 c=-128 () Vemos que, quando incrementamos um charconjunto de variáveis ​​para CHAR_MAX, ele se volta para CHAR_MIN. Esse comportamento é garantido? Ou …



1
C11 Atomic Adquirir / Liberar e x86_64 falta de coerência de carga / armazenamento?
Estou lutando com a Seção 5.1.2.4 da Norma C11, em particular a semântica de Liberação / Aquisição. Observo que https://preshing.com/20120913/acquire-and-release-semantics/ (entre outros) afirma que: ... A semântica de liberação impede a reordenação de memória da liberação de gravação com qualquer operação de leitura ou gravação que a preceda na ordem …

4
Por que retornar NULL de main ()?
Às vezes, vejo codificadores que usam NULLcomo valor de retorno main()nos programas C e C ++, por exemplo, algo assim: #include <stdio.h> int main() { printf("HelloWorld!"); return NULL; } Ao compilar esse código com o gcc, recebo o aviso de: aviso: return torna inteiro do ponteiro sem conversão [-Wint-conversion] o …
10 c++  c  null  return  return-value 

2
O pré-buscador L2 HW é realmente útil?
Estou no Whiskey Lake i7-8565U e estou analisando os contadores de perf e o tempo para copiar 512 KiB de dados (duas vezes mais que o tamanho do cache L2) e enfrentei alguns mal-entendidos sobre o trabalho do pré-buscador L2 HW. No manual Intel Vol.4 MSR, há MSR que 0x1A4o …


5
Ligação dinâmica - Linux vs. janelas
No Windows, quando compilo o código C / C ++ em um projeto DLL no MSVC, estou recebendo 2 arquivos: MyDll.dll MyDll.lib onde, tanto quanto eu entendo, MyDll.libcontém algum tipo de tabela de ponteiros indicando os locais das funções na dll. Ao usar essa dll, digamos em um arquivo exe, …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.