Articles of padrões

C / C ++ int vs int * (pointers versus notação de matriz). Qual é a diferença?

Eu sei que as matrizes em C são apenas pointers para dados armazenados sequencialmente. Mas quais diferenças implicam a diferença na notação [] e *. Quero dizer, em TODO o contexto de uso possível. Por exemplo: char c[] = “test”; se você fornecer essa instrução em um corpo de function, ela alocará a string em […]

É `long` garantido pelo menos 32 bits?

Pela minha leitura do C ++ Standard, eu sempre entendi que os tamanhos dos tipos fundamentais integrais em C ++ eram os seguintes: sizeof(char) <= sizeof(short int) <= sizeof(int) <= sizeof(long int) Eu deduzi isso de 3.9.1 / 2: Existem quatro tipos inteiros assinados: “char assinado”, “short int”, “int” e “long int”. Nessa lista, cada […]

Chamada de método de membro estático C ++ na instância de class

Aqui está um pequeno programa de teste: #include class Test { public: static void DoCrash(){ std::cout<< "TEST IT!"<< std::endl; } }; int main() { Test k; k.DoCrash(); // calling a static method like a member method… std::system("pause"); return 0; } No VS2008 + SP1 (vc9) ele compila bem: o console exibe apenas “TEST IT!”. Tanto […]

O que o SQL Standard diz sobre o uso do backtick (`)?

Uma vez eu tinha passado horas na debugging de uma simples consulta SQL usando mysql_query() em PHP/MySQL apenas para perceber que eu havia perdido o nome do nome da tabela. A partir de então, eu sempre usava nomes de tabelas. Mas quando eu usei o mesmo em SQLite/C++ , o símbolo nem é reconhecido. É […]

Devo usar char ** argv ou char * argv em C?

Eu só estou aprendendo C e queria saber qual desses eu deveria usar no meu método principal. Existe alguma diferença? Edit: Então, qual é o mais comum de usar?

Como determinar a versão do padrão C ++ usado pelo compilador?

Como você determina qual versão do padrão C ++ é implementada pelo seu compilador? Tanto quanto eu sei, abaixo estão os padrões que eu conheço: C ++ 03 C ++ 98

Os compiladores podem eliminar loops infinitos?

Pode otimizar o compilador excluir loops infinitos, que não altera nenhum dado, como while(1) /* noop */; Da análise de um compilador de gráfico de stream de dados pode derivar, que esse loop é “código morto” sem efeitos colaterais. A exclusão de loops infinitos é proibida pelos padrões C90 / C99? Os padrões C90 ou […]

Acesso unidimensional a um array multidimensional: é um comportamento bem definido?

Eu imagino que todos nós concordamos que é considerado C idiomático para acessar um verdadeiro array multidimensional, desreferenciando um ponteiro (possivelmente offset) para o seu primeiro elemento de uma forma unidimensional, por exemplo: void clearBottomRightElement(int *array, int M, int N) { array[M*N-1] = 0; // Pretend the array is one-dimensional } int mtx[5][3]; … clearBottomRightElement(&mtx[0][0], […]

Diferença entre void main e int main?

Importa de que maneira eu declaro meus programas em C ++?

Quais são os novos resources do C ++ 17?

O C ++ 17 agora está completo, portanto, é improvável que ocorram grandes mudanças. Foram apresentadas centenas de propostas para o C ++ 17. Quais desses resources foram adicionados ao C ++ em C ++ 17? Ao usar um compilador C ++ que suporte “C ++ 1z”, quais desses resources estarão disponíveis quando o compilador […]