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
Różnica między int32, int, int32_t, int8 i int8_t
int32_tNiedawno natknąłem się na typ danych w programie C. Wiem, że przechowuje 32 bity, ale czy nie inti int32robi to samo? Chcę też używać charw programie. Czy mogę int8_tzamiast tego użyć ? Jaka jest różnica? Podsumowując: jaka jest różnica między int32, int, int32_t, int8 i int8_t w C?
104 c  int  declaration 

7
Przecinek w makrze C / C ++
Powiedzmy, że mamy takie makro #define FOO(type,name) type name Którego moglibyśmy użyć FOO(int, int_var); Ale nie zawsze tak prosto: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 Oczywiście mogliśmy zrobić: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK co nie jest zbyt ergonomiczne. Niezgodności …
104 c++  c  macros  c-preprocessor 

13
Dlaczego rozmiar parametru tablicy nie jest taki sam jak w main?
Dlaczego rozmiar tablicy wysyłanej jako parametr nie jest taki sam jak w main? #include <stdio.h> void PrintSize(int p_someArray[10]); int main () { int myArray[10]; printf("%d\n", sizeof(myArray)); /* As expected, 40 */ PrintSize(myArray);/* Prints 4, not 40 */ } void PrintSize(int p_someArray[10]){ printf("%d\n", sizeof(p_someArray)); }
104 c  arrays  function  sizeof 


4
Dlaczego wszyscy piszą zamiast standardowych typów C?
Jeśli chcesz korzystać z Qt , trzeba ogarnąć quint8, quint16i tak dalej. Jeśli chcesz użyć wygadany , trzeba powitanie guint8, guint16i tak dalej. Na Linuksie istnieją u32, s16i tak dalej. uC / OS definiuje SINT32, UINT16i tak dalej. A jeśli musisz użyć jakiejś kombinacji tych rzeczy, lepiej bądź przygotowany na …
103 c++  c  stdint 

12
Dlaczego literały znaków C są ints zamiast chars?
W C ++ sizeof('a') == sizeof(char) == 1. Ma to sens intuicyjny, ponieważ 'a'jest to literał znakowy i sizeof(char) == 1zgodnie z definicją w standardzie. W C jednak sizeof('a') == sizeof(int). Oznacza to, że wydaje się, że literały znakowe C są w rzeczywistości liczbami całkowitymi. Czy ktoś wie dlaczego? Mogę …
103 c++  c  char  sizeof 


7
Drukowanie znaków szesnastkowych w C
Próbuję przeczytać wiersz znaków, a następnie wydrukować szesnastkowy odpowiednik tych znaków. Na przykład, jeśli mam ciąg, czyli "0xc0 0xc0 abc123"gdzie pierwsze 2 znaki są c0w szesnastkowym, a pozostałe abc123w ASCII, to powinienem otrzymać c0 c0 61 62 63 31 32 33 Jednak printfużycie %xdaje mi ffffffc0 ffffffc0 61 62 63 …
103 c  hex  printf 

8
Specyfikator szerokości Printf, aby zachować precyzję wartości zmiennoprzecinkowej
Czy istnieje printfspecyfikator szerokości, który można zastosować do specyfikatora zmiennoprzecinkowego, który automatycznie sformatowałby dane wyjściowe do wymaganej liczby cyfr znaczących, tak że podczas ponownego skanowania łańcucha uzyskiwana jest oryginalna wartość zmiennoprzecinkowa? Na przykład załóżmy, że wypisuję a floatz dokładnością do 2miejsc dziesiętnych: float foobar = 0.9375; printf("%.2f", foobar); // prints …

4
Korzystanie z biblioteki C ++ w kodzie C.
Mam bibliotekę C ++, która udostępnia różne klasy do zarządzania danymi. Mam kod źródłowy biblioteki. Chcę rozszerzyć interfejs API C ++, aby obsługiwał wywołania funkcji C, aby biblioteka mogła być używana z kodem C i kodem C ++ w tym samym czasie. Używam łańcucha narzędzi GNU (gcc, glibc itp.), Więc …
103 c++  c  gcc  glibc 

4
Co znaczy -D_XOPEN_SOURCE?
Niedawno napotkałem kod, którego gcc nie skompilowałby bez tego argumentu. Sprawdziłem stronę podręcznika gcc, ale nie znalazłem tej konkretnej opcji. Znalazłem XOPEN_SOURCE, ale niewiele było wyjaśnienia, do czego służy. Czy ktoś może coś rozwinąć? Wiem, że -D_XOPEN_SOURCEmożna ustawić różne wartości, takie 400, 600ale to, co czynili DO?
103 c  gcc 

7
Jak obliczana jest suma kontrolna CRC32?
Może po prostu tego nie widzę, ale CRC32 wydaje się albo niepotrzebnie skomplikowane, albo niewystarczająco wyjaśnione nigdzie, co mogłem znaleźć w sieci. Rozumiem, że jest to reszta z arytmetycznego podziału wartości wiadomości nie opartego na przenoszeniu, podzielonej przez wielomian (generujący), ale faktyczna jego implementacja mi umyka. Przeczytałem Bezbolesny przewodnik po …
103 c  checksum  crc32 


2
Co oznacza && w void * p = && abc;
Natrafiłem na fragment kodu void *p = &&abc;. Jakie ma to znaczenie &&? Wiem o odwołaniach do wartości r, ale myślę, że &&w tym kontekście jest inaczej. Co to &&oznacza void *p = &&abc;?
102 c++  c  gcc  operators 

10
„F” po numerze
Co foznaczają liczby po liczbach? Czy to z C czy Objective-C? Czy jest jakaś różnica w nie dodawaniu tego do stałej liczby? CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f); Czy możesz wyjaśnić, dlaczego nie napisałbym po prostu: CGRect frame = CGRectMake(0, 0, 320, 50);

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.