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.

7
Arquiteturas exóticas com as quais os comitês de padrões se preocupam
Eu sei que os padrões C e C ++ deixam muitos aspectos da implementação de linguagem definidos apenas porque, se houver uma arquitetura com outras características, seria muito difícil ou impossível escrever um compilador em conformidade com ele. Eu sei que 40 anos atrás, qualquer computador tinha sua própria especificação. …
154 c++  c  architecture 

5
Vazamento ainda acessível detectado por Valgrind
Todas as funções mencionadas neste bloco são funções de biblioteca. Como posso corrigir esse vazamento de memória? Ele está listado na categoria " Ainda acessível ". (Existem mais 4, que são muito semelhantes, mas de tamanhos variados) 630 bytes in 1 blocks are still reachable in loss record 5 of …
154 c  pthreads  valgrind 


6
NSLog o nome do método com Objective-C no iPhone
Atualmente, estamos nos definindo um mecanismo de log estendido para imprimir o nome da classe e o número da linha de origem do log. #define NCLog(s, ...) NSLog(@"<%@:%d> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], \ __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) Por exemplo, quando eu chamo NCLog (@ "Hello world"); A saída será: <ApplicationDelegate:10>Hello …

11
~ x + ~ y == ~ (x + y) é sempre falso?
Esse código sempre é avaliado como falso? Ambas as variáveis ​​são entradas assinadas do complemento de duas. ~x + ~y == ~(x + y) Sinto que deve haver um número que satisfaça as condições. Tentei testar os números entre -5000e 5000nunca alcançou a igualdade. Existe uma maneira de configurar uma …

9
Em C, chaves funcionam como um quadro de pilha?
Se eu criar uma variável dentro de um novo conjunto de chaves, essa variável saiu da pilha na chave de fechamento ou permanece até o final da função? Por exemplo: void foo() { int c[100]; { int d[200]; } //code that takes a while return; } Vai docupar memória durante …
153 c  memory  stack 

9
O que é um "retorno de chamada" em C e como eles são implementados?
Pela leitura que fiz, o Core Audio depende muito de retornos de chamada (e C ++, mas isso é outra história). Entendo o conceito (tipo de) de configurar uma função que é chamada por outra função repetidamente para realizar uma tarefa. Eu simplesmente não entendo como eles são configurados e …
153 c  callback 

14
Verificando o ponteiro NULL em C / C ++ [fechado]
Fechado . Esta questão é baseada em opiniões . No momento, não está aceitando respostas. Deseja melhorar esta pergunta? Atualize a pergunta para que ela possa ser respondida com fatos e citações editando esta postagem . Fechado há 5 anos . Melhore esta pergunta Em uma revisão de código recente, …

13
Quais ferramentas existem para programação funcional em C?
Ultimamente, tenho pensado muito em como fazer programação funcional em C ( não em C ++). Obviamente, C é uma linguagem processual e realmente não suporta programação funcional nativamente. Existem extensões de compilador / idioma que adicionam algumas construções de programação funcional ao idioma? O GCC fornece funções aninhadas como …

13
O num ++ pode ser atômico para 'int num'?
Em geral, para int num, num++(ou ++num), como uma operação de leitura-modificação-gravação, não é atômica . Mas muitas vezes vejo compiladores, por exemplo o GCC , gerar o seguinte código ( tente aqui ): Como a linha 5, que corresponde a num++uma instrução, podemos concluir que num++ é atômica nesse …


4
O que significa "#define _GNU_SOURCE"?
Hoje eu tive que usar a basename()função, e o man 3 basename( aqui ) me deu uma mensagem estranha: Notas Existem duas versões diferentes de basename () - a versão POSIX descrita acima e a versão GNU , que é obtida depois #define _GNU_SOURCE #include <string.h> Estou imaginando o que …
152 c  posix  gnu 

22
Tratamento de erros no código C
O que você considera "prática recomendada" quando se trata de tratar erros de maneira consistente em uma biblioteca C. Há duas maneiras em que estive pensando: Sempre retorne o código de erro. Uma função típica seria assim: MYAPI_ERROR getObjectSize(MYAPIHandle h, int* returnedSize); O sempre fornece uma abordagem de ponteiro de …
152 c  error-handling 


8
Retornando uma matriz usando C
Eu sou relativamente novo em C e preciso de ajuda com métodos para lidar com matrizes. Vindo da programação Java, estou acostumado a ser capaz de dizer int [] method()para retornar uma matriz. No entanto, descobri que com C você precisa usar ponteiros para matrizes quando as devolve. Sendo um …
152 c  arrays  pointers  char 

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.