Perguntas com a marcação «c»

9
foo (vazio) vs foo (vazio *)

Falando funcional e sintaticamente, existe uma diferença entre uma função cujo protótipo é int foo(void)e int foo(void *)? Eu sei a diferença entre, por exemplo, int bar(int)e int bar(int *)- um deles está procurando um int e o outro está procurando um ponteiro int. Comporta- voidse da mesma...

9
Ponteiro C para declaração de array com bit a bit e operador

Quero entender o seguinte código: //... #define _C 0x20 extern const char *_ctype_; //... __only_inline int iscntrl(int _c) { return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _C)); } Ele se origina do arquivo ctype.h do código-fonte do sistema operacional obenbsd. Esta função...

9
O que é o encapsulamento em tempo de compilação em C?

Quando eu estava pesquisando as vantagens de C sobre C ++, deparei-me com este parágrafo: A maneira padrão em C de fazer o encapsulamento é encaminhar declarar uma estrutura e permitir apenas o acesso aos seus dados através de funções. Este método também cria encapsulamento em tempo de...

9
Da linguagem natural à expressão C ++

Tarefa: Traduza as seguintes expressões de linguagem natural para expressões C ++. Suponha que todas as variáveis ​​sejam números não negativos ou booleanos (com valor verdadeiro ou falso). Linguagem Natural: A e b são ambos falsos ou c é verdadeiro, mas não ambos. Minha solução: (a==0...

9
CHAR_WIDTH não declarado

Eu recebo o erro ‘CHAR_WIDTH’ undeclared quando tento compilar este programa simples: #include <stdio.h> #include <limits.h> int main() { printf("CHAR_BIT = %d\n", CHAR_BIT); printf("CHAR_WIDTH = %d\n", CHAR_WIDTH); return (0); } com gcc ./show_char_width.c -o...

9
É permitido adicionar zero a um ponteiro nulo?

Eu sei que a aritmética do ponteiro não é permitida para ponteiros nulos. Mas imagine que eu tenho algo parecido com isto: class MyArray { int *arrayBegin; // pointer to the first array item, NULL for an empty array unsigned arraySize; // size of the array, zero for an empty array public: int...

9
Por que o LLVM aloca uma variável redundante?

Aqui está um arquivo C simples com uma definição de enumeração e uma mainfunção: enum days {MON, TUE, WED, THU}; int main() { enum days d; d = WED; return 0; } Transpila para o seguinte LLVM IR: define dso_local i32 @main() #0 { %1 = alloca i32, align 4 %2 = alloca i32, align 4 store i32...

9
Conversão para void ** em diferentes compiladores

Eu tenho executado o seguinte código através de diferentes compiladores: int main() { float **a; void **b; b = a; } Pelo que pude reunir, nãovoid ** é um ponteiro genérico, o que significa que qualquer conversão de outro ponteiro não deve compilar ou, pelo menos, emitir um aviso. No entanto,...

9
Parâmetro principal C

Eu escrevi um código que precisa exibir os parâmetros principais, mas quando o compilei e digitei "*" o programa mostra minha estrutura de arquivos. O comando no cmd se parece com o seguinte:program.exe 1 2 3 * #include <stdio.h> #include <stdlib.h> int main(int argc, char const*...