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.


4
Impressão com bloco esquerdo com espaços
Como posso preencher uma string com espaços à esquerda ao usar printf? Por exemplo, quero imprimir "Olá" com 40 espaços antes dele. Além disso, a string que desejo imprimir consiste em várias linhas. Eu preciso imprimir cada linha separadamente? EDIT: Só para ficar claro, eu quero exatamente 40 espaços impressos …
114 c  formatting  printf 

5
GDB corrompido stack frame - como depurar?
Eu tenho o seguinte rastreamento de pilha. É possível extrair algo útil disso para depuração? Program received signal SIGSEGV, Segmentation fault. 0x00000002 in ?? () (gdb) bt #0 0x00000002 in ?? () #1 0x00000001 in ?? () #2 0xbffff284 in ?? () Backtrace stopped: previous frame inner to this frame …
113 c  recursion  gdb 

7
Cabeçalho C99 stdint.h e MS Visual Studio
Para minha surpresa, acabei de descobrir que o C99 stdint.h está faltando no MS Visual Studio 2003 em diante. Tenho certeza que eles têm seus motivos, mas alguém sabe onde posso baixar uma cópia? Sem este cabeçalho, não tenho definições para tipos úteis, como uint32_t, etc.
113 c++  c  visual-studio  c99 


7
Qual é a diferença entre vmalloc e kmalloc?
Pesquisei no Google e encontrei muitas pessoas defendendo o uso de kmalloc, já que é garantido que você obterá blocos físicos contíguos de memória. No entanto, também parece que kmallocpode falhar se um bloco físico contíguo que você deseja não puder ser encontrado. Quais são as vantagens de ter um …


10
Free (ptr) onde ptr é NULL corrompido memória?
Teoricamente posso dizer que free(ptr); free(ptr); é uma corrupção de memória, pois estamos liberando a memória que já foi liberada. Mas e se free(ptr); ptr=NULL; free(ptr); Como o SO vai se comportar de maneira indefinida, não consigo fazer uma análise teórica real sobre o que está acontecendo. O que quer …

9
Por que lançar valores de retorno não utilizados para nulos?
int fn(); void whatever() { (void) fn(); } Existe alguma razão para lançar um valor de retorno não utilizado para o vazio, ou estou certo em pensar que é uma completa perda de tempo? Acompanhamento: Bem, isso parece muito abrangente. Suponho que seja melhor do que comentar um valor de …
112 c++  c  void 


19
#ifdef vs #if - o que é melhor / mais seguro como método para habilitar / desabilitar a compilação de seções específicas do código?
Isso pode ser uma questão de estilo, mas há um pouco de divisão em nossa equipe de desenvolvimento e eu me pergunto se mais alguém tem alguma idéia sobre o assunto ... Basicamente, temos algumas instruções de impressão de depuração que desativamos durante o desenvolvimento normal. Pessoalmente, prefiro fazer o …

5
Onde PATH_MAX é definido no Linux?
Com qual arquivo de cabeçalho devo invocar #includepara poder usar PATH_MAX como um int para dimensionar uma string? Eu quero ser capaz de declarar: char *current_path[PATH_MAX]; Mas, quando faço isso, meu compilador (Clang / LLVM no Linux) emite o seguinte erro: recursive_find6.c:29:20: error: use of undeclared identifier 'PATH_MAX' char *current_path[PATH_MAX]; …
112 c  linux  gcc  include  clang 


3
Qual macro predefinida posso usar para detectar o clang?
Estou tentando detectar o compilador usado para compilar meu código-fonte. Posso encontrar facilmente macros predefinidas para verificar se há MSVC ou GCC (consulte http://predef.sourceforge.net/ por exemplo), mas não consigo encontrar nenhuma macro para verificar se há clang. Alguém sabe se o clang define uma macro como __CLANG__para saber o que …


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.