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.


15
Opções de aviso gcc recomendadas para C [fechado]
Fechado . Esta pergunta é baseada em opinião . Atualmente não está aceitando respostas. Quer melhorar esta questão? Atualize a pergunta para que ela possa ser respondida com fatos e citações editando este post . Fechado há 6 anos . Melhore esta questão Além de -Wall, que outros avisos as …
83 c  gcc  compiler-errors 

5
De onde vem a palavra “pragma”?
Portanto, sei o que é pragma e para que serve, mas qual é o significado da palavra em si? Já usei isso muitas vezes em código, mas nunca soube realmente o que a palavra realmente significa ou significa.
83 c++  c  terminology  pragma 

9
Mudança de C ++ para C
Depois de alguns anos codificando em C ++, recentemente me ofereceram um emprego de codificador em C, na área de embarcados. Deixando de lado a questão de saber se é certo ou errado descartar o C ++ no campo incorporado, há alguns recursos / expressões idiomáticas em C ++ dos …
83 c++  c 

3
Por que anular o valor de retorno do free?
Estou lendo um livro ( Programming with POSIX Threads by Butenhof, 1997) que usa C e me deparei com a seguinte linha: (void)free(data); Aqui, dataé apenas um ponteiro para uma estrutura alocada, data = malloc(sizeof(my_struct_t)); Por que o resultado de freeser lançado para void? Do meu entendimento de C, isso …
82 c  casting  free  void  legacy-code 


7
Posso usar NULL como substituição do valor 0?
Posso usar o NULLponteiro como substituto do valor de 0? Ou há algo de errado nisso? Como por exemplo: int i = NULL; como substituto para: int i = 0; Como experimento, compilei o seguinte código: #include <stdio.h> int main(void) { int i = NULL; printf("%d",i); return 0; } Resultado: …


4
Qual é a necessidade de chaves vazias '{}' no final da matriz de estruturas?
Eu bati algum código c no kernel do Linux: static struct ctl_table ip_ct_sysctl_table[] = { { .procname = "ip_conntrack_max", .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, // ... { .procname = "ip_conntrack_log_invalid", .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &log_invalid_proto_min, .extra2 = …

4
O que faz ((void (*) ()) buf) (); significar?
Estou resolvendo um desafio de exploração binária no picoCTF e me deparei com este pedaço de código: ((void (*)())buf)(); onde bufé uma matriz de caracteres. Eu resolvi o desafio, mas não consigo entender o que exatamente está fazendo. Eu olhei para esta discussão, mas não consegui entender. O que ((void …




2
Por que os endereços argc e argv estão separados por 12 bytes?
Eu executei o seguinte programa no meu computador (Intel de 64 bits executando Linux). #include <stdio.h> void test(int argc, char **argv) { printf("[test] Argc Pointer: %p\n", &argc); printf("[test] Argv Pointer: %p\n", &argv); } int main(int argc, char **argv) { printf("Argc Pointer: %p\n", &argc); printf("Argv Pointer: %p\n", &argv); printf("Size of &argc: …


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.