Pytania otagowane jako c

C jest językiem programowania ogólnego przeznaczenia używanym do programowania systemu (system operacyjny i wbudowane), bibliotek, gier i platform. Tego znacznika należy używać z ogólnymi pytaniami dotyczącymi języka C, zgodnie z definicją w normie ISO 9899 (najnowsza wersja, 9899: 2018, o ile nie określono inaczej - także znaczniki specyficzne dla wersji za pomocą c89, c99, c11 itd.). C różni się od C ++ i nie należy go łączyć ze znacznikiem C ++ bez uzasadnionego powodu.

3
Jak wydrukować uint64_t? Niepowodzenie z: „fałszywe końcowe„% ”w formacie”
Napisałem bardzo prosty kod testowy printf uint64_t: #include <inttypes.h> #include <stdio.h> int main() { uint64_t ui64 = 90; printf("test uint64_t : %" PRIu64 "\n", ui64); return 0; } Do kompilacji używam ubuntu 11.10 (64-bitowego) i gcc w wersji 4.6.1, ale nie powiodło się: main.cpp: In function ‘int main()’: main.cpp:9:30: error: …
133 c++  c 



7
Dlaczego kompilator nie może (lub nie może) zoptymalizować przewidywalnej pętli dodawania do mnożenia?
To pytanie, które przyszło mi do głowy, czytając genialną odpowiedź Mysticial na pytanie: dlaczego szybciej jest przetwarzać posortowaną tablicę niż nieposortowaną ? Kontekst dla zaangażowanych typów: const unsigned arraySize = 32768; int data[arraySize]; long long sum = 0; W swojej odpowiedzi wyjaśnia, że ​​kompilator Intel (ICC) optymalizuje to: for (int …

8
Umieszczanie zmiennej deklaracji w C
Długo myślałem, że w C wszystkie zmienne trzeba zadeklarować na początku funkcji. Wiem, że w C99 reguły są takie same jak w C ++, ale jakie są zasady umieszczania deklaracji zmiennych dla C89 / ANSI C? Poniższy kod pomyślnie kompiluje się z gcc -std=c89i gcc -ansi: #include <stdio.h> int main() …
132 c  declaration  c89 

18
„#Include” plik tekstowy w programie w języku C jako znak []
Czy istnieje sposób na dołączenie całego pliku tekstowego jako ciągu w programie C w czasie kompilacji? coś jak: plik.txt: This is a little text file main.c: #include <stdio.h> int main(void) { #blackmagicinclude("file.txt", content) /* equiv: char[] content = "This is\na little\ntext file"; */ printf("%s", content); } uzyskanie małego programu, który …


30
Jak przekonwertować zmienną typu wyliczenia na ciąg?
Jak sprawić, by printf pokazywał wartości zmiennych, które są typu wyliczeniowego? Na przykład: typedef enum {Linux, Apple, Windows} OS_type; OS_type myOS = Linux; a ja potrzebuję czegoś takiego printenum(OS_type, "My OS is %s", myOS); który musi pokazywać ciąg „Linux”, a nie liczbę całkowitą. Przypuszczam, że najpierw muszę utworzyć tablicę ciągów …
132 c++  c  preprocessor  ansi-c 

13
Jak utworzyć nieskończoną pustą pętlę, która nie zostanie zoptymalizowana?
Standard C11 wydaje się sugerować, że instrukcje iteracji ze stałymi wyrażeniami kontrolującymi nie powinny być optymalizowane. Czerpię radę z tej odpowiedzi , która konkretnie cytuje sekcję 6.8.5 projektu standardu: Instrukcja iteracji, której wyrażenie kontrolne nie jest wyrażeniem stałym ... może zostać przyjęte przez implementację jako zakończona. W tej odpowiedzi wspomniano, …

12
Dlaczego C nie ma pływaków bez znaku?
Wiem, pytanie wydaje się dziwne. Programiści czasami myślą za dużo. Proszę czytaj dalej ... W zastosowaniach CI signedi unsignedwielu liczbach całkowitych. Podoba mi się fakt, że kompilator ostrzega mnie, gdy robię takie rzeczy, jak przypisywanie liczby całkowitej ze znakiem do zmiennej bez znaku. Otrzymuję ostrzeżenia, jeśli porównam ze znakiem liczb …

19
Czy odliczanie jest szybsze niż liczenie w górę?
Nasz nauczyciel informatyki powiedział kiedyś, że z jakiegoś powodu skuteczniej jest odliczać niż liczyć w górę. Na przykład, jeśli potrzebujesz użyć pętli FOR, a indeks pętli nie jest gdzieś używany (jak drukowanie linii N * na ekranie), mam na myśli ten kod: for (i = N; i >= 0; i--) …
131 c  performance  loops 





Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.