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.

12
Por que os literais de caracteres C são ints em vez de chars?
Em C ++ sizeof('a') == sizeof(char) == 1,. Isso faz sentido intuitivo, uma vez que 'a'é um caractere literal e sizeof(char) == 1conforme definido pelo padrão. No entanto, em C sizeof('a') == sizeof(int),. Ou seja, parece que os literais de caracteres C são, na verdade, inteiros. Alguem sabe por quê? …
103 c++  c  char  sizeof 

7
Vírgula na macro C / C ++
Digamos que temos uma macro como esta #define FOO(type,name) type name Que poderíamos usar como FOO(int, int_var); Mas nem sempre tão simplesmente: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Claro que poderíamos fazer: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK o que …
103 c++  c  macros  c-preprocessor 



3
Diferença entre int32, int, int32_t, int8 e int8_t
Me deparei com o tipo de dados int32_tem um programa C recentemente. Eu sei que ele armazena 32 bits, mas não armazena inte int32faz o mesmo? Além disso, desejo usar charem um programa. Posso usar no int8_tlugar? Qual é a diferença? Para resumir: qual é a diferença entre int32, int, …
103 c  int  declaration 

7
Impressão de caracteres hexadecimais em C
Estou tentando ler uma linha de caracteres e imprimir o equivalente hexadecimal dos caracteres. Por exemplo, se eu tenho uma string em que "0xc0 0xc0 abc123"os 2 primeiros caracteres estão c0em hexadecimal e os caracteres restantes estão abc123em ASCII, então devo obter c0 c0 61 62 63 31 32 33 …
103 c  hex  printf 

4
O que -D_XOPEN_SOURCE significa /?
Recentemente encontrei um código que o gcc não compilaria sem este arg. Verifiquei a página de manual do gcc, mas não encontrei essa opção específica. Eu encontrei XOPEN_SOURCE, mas havia pouca explicação do que ele faz. Alguém pode explicar? Eu sei que -D_XOPEN_SOURCEpode ser definida com valores diferentes, como 400, …
103 c  gcc 


2
O que && significa em void * p = && abc;
Me deparei com um pedaço de código void *p = &&abc;. Qual é o significado &&disso? Eu sei sobre referências de rvalue, mas acho que &&usado neste contexto é diferente. O que &&indica em void *p = &&abc;?
102 c++  c  gcc  operators 

10
“F” após o número
O que o fdepois dos números indica? É de C ou Objective-C? Existe alguma diferença em não adicionar isso a um número constante? CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f); Você pode explicar por que eu não apenas escreveria: CGRect frame = CGRectMake(0, 0, 320, 50);

7
Faça um programa funcionar lentamente
Existe alguma maneira de executar um programa C ++ mais lento alterando os parâmetros do sistema operacional no Linux? Desta forma, gostaria de simular o que acontecerá se aquele programa específico rodar em uma máquina realmente mais lenta. Em outras palavras, uma máquina mais rápida deve se comportar como uma …
102 c++  c  linux  unix  ubuntu 

6
As definições de struct devem estar no arquivo .h ou .c?
Eu vi as definições completas de structs em cabeçalhos e apenas declarações - há alguma vantagem em um método sobre o outro? Se isso faz diferença, eu geralmente digitei uma estrutura como esta no .h typedef struct s s_t; Editar Para ficar claro, as opções são declaração no arquivo de …
102 c  header  struct 

6
snprintf e Visual Studio 2010
Tenho a infelicidade de estar preso ao uso do VS 2010 para um projeto e percebi que o código a seguir ainda não compila usando o compilador não compatível com os padrões: #include <stdio.h> #include <stdlib.h> int main (void) { char buffer[512]; snprintf(buffer, sizeof(buffer), "SomeString"); return 0; } (falha na …

11
Por que printf com um único argumento (sem especificadores de conversão) foi descontinuado?
Em um livro que estou lendo, está escrito que printfcom um único argumento (sem especificadores de conversão) está obsoleto. Recomenda substituir printf("Hello World!"); com puts("Hello World!"); ou printf("%s", "Hello World!"); Alguém pode me dizer por que printf("Hello World!");está errado? Está escrito no livro que contém vulnerabilidades. Quais são essas vulnerabilidades?

7
Confusão sobre a inicialização do array em C
Na linguagem C, se inicializar uma matriz como esta: int a[5] = {1,2}; então, todos os elementos da matriz que não foram inicializados explicitamente serão inicializados implicitamente com zeros. Mas, se eu inicializar uma matriz como esta: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); resultado: 1 …

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.