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.


10
Cel C: BOOL vs bool
Widziałem „nowy typ” BOOL( YES, NO). Czytałem, że ten typ jest prawie jak char. Do testów zrobiłem: NSLog(@"Size of BOOL %d", sizeof(BOOL)); NSLog(@"Size of bool %d", sizeof(bool)); Dobrze widzieć, że oba dzienniki wyświetlają „1” (czasami w C ++ bool jest liczbą całkowitą, a jej rozmiar wynosi 4) Zastanawiałem się więc, …
192 c  objective-c  types  boolean 

1
Czy mogę używać literału binarnego w C lub C ++?
Muszę pracować z liczbą binarną. Próbowałem pisać: const x = 00010000; Ale to nie zadziałało. Wiem, że mogę użyć liczby szesnastkowej o tej samej wartości 00010000, ale chcę wiedzieć, czy istnieje typ w C ++ dla liczb binarnych, a jeśli nie, czy istnieje inne rozwiązanie mojego problemu?
191 c++  c  binary 

3
formatowanie printf () dla heksadecymalnego
To bardziej ciekawe pytanie niż ważne pytanie, ale dlaczego drukując szesnastkę jako 8 cyfr z zerami wiodącymi, nie %#08Xwyświetla tego samego wyniku co 0x%08X? Kiedy próbuję użyć tego pierwszego, 08flaga formatowania jest usuwana i nie działa tylko z 8. Znów byłem po prostu ciekawy.
191 c  printf  hex 



12
Prześlij wywołanie funkcji wariadycznej w C
Czy w C można przekazać wywołanie funkcji wariadycznej? Jak w, int my_printf(char *fmt, ...) { fprintf(stderr, "Calling printf with fmt %s", fmt); return SOMEHOW_INVOKE_LIBC_PRINTF; } Przekazywanie wywołania w powyższy sposób oczywiście nie jest absolutnie konieczne w tym przypadku (ponieważ można rejestrować wywołania w inny sposób lub użyć vfprintf), ale podstawa …
189 c  variadic 

25
Zaokrąglenie do następnej potęgi 2
Chcę napisać funkcję, która zwraca najbliższą następną potęgę liczby 2. Na przykład, jeśli mój sygnał wejściowy to 789, wynik powinien wynosić 1024. Czy jest jakiś sposób na osiągnięcie tego bez użycia żadnych pętli, a jedynie z wykorzystaniem operatorów bitowych?

13
C nie jest takie trudne: void (* (* f []) ()) ()
Właśnie widziałem dziś zdjęcie i myślę, że doceniłbym wyjaśnienia. Oto zdjęcie: Uznałem to za mylące i zastanawiałem się, czy takie kody są kiedykolwiek praktyczne. Przejrzałem zdjęcie i znalazłem inne zdjęcie w tym wpisie reddit, a oto to zdjęcie: Czy to „duchowe czytanie” jest czymś ważnym? Czy tak analizują kompilatory C? …



3
oddziały fork () więcej niż oczekiwano?
Rozważ następujący fragment kodu: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; for(i = 0; i < 2; i++) { fork(); printf("."); } return 0; } Ten program generuje 8 kropek. Jak to możliwe? Czy zamiast tego nie powinno być 6 kropek?
186 c++  c  fork 


14
Kiedy używać funkcji inline, a kiedy jej nie używać?
Wiem, że inline jest wskazówką lub żądaniem kompilatora i służy do unikania narzutów wywołania funkcji. Na jakiej podstawie można ustalić, czy funkcja jest kandydatem do inklinacji, czy nie? W którym przypadku należy unikać wkładania?
185 c++  c  inline 

1
W jaki sposób ładowane są GCC i g ++?
Martwi mnie to od dłuższego czasu. Jak się kompilują GCC i g ++? Zgaduję, że każda wersja jest kompilowana z poprzednio zbudowaną wersją. Czy to prawda? A jeśli tak, to czy oznacza to, że najstarsze wersje g ++ i GCC zostały napisane w asemblerze?

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.