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
Dlaczego printf („% f”, 0); dać niezdefiniowane zachowanie?
Wyrok printf("%f\n",0.0f); drukuje 0. Jednak oświadczenie printf("%f\n",0); wypisuje losowe wartości. Zdaję sobie sprawę, że przejawiam jakieś niezdefiniowane zachowanie, ale nie potrafię dokładnie określić dlaczego. Wartość zmiennoprzecinkowa, w której wszystkie bity są równe 0, jest nadal ważna i floatma wartość 0. floati intmają ten sam rozmiar na moim komputerze (jeśli to …



12
Czy TCHAR jest nadal aktualny?
Jestem nowy w programowaniu Windows i po przeczytaniu książki Petzolda zastanawiam się: czy nadal dobrą praktyką jest używanie TCHARtypu i _T()funkcji do deklarowania ciągów, czy też powinienem używać po prostu ciągów wchar_ti L""w nowym kodzie? Skoncentruję się tylko na systemie Windows 2000 i nowszych, a mój kod od samego początku …
87 c++  c  windows  unicode  wchar-t 


7
C / C ++: Wymuś kolejność i wyrównanie pola bitowego
Czytałem, że kolejność pól bitowych w strukturze zależy od platformy. A jeśli użyję różnych opcji pakowania specyficznych dla kompilatora, czy ta gwarancja będzie przechowywana we właściwej kolejności, w jakiej są zapisywane? Na przykład: struct Message { unsigned int version : 3; unsigned int type : 1; unsigned int id : …



5
Dlaczego C i C ++ obsługują przypisywanie tablic w ramach struktur, ale nie ogólnie?
Rozumiem, że członkowskie przypisywanie tablic nie jest obsługiwane, więc następujące elementy nie będą działać: int num1[3] = {1,2,3}; int num2[3]; num2 = num1; // "error: invalid array assignment" Po prostu zaakceptowałem to jako fakt, stwierdzając, że celem języka jest zapewnienie otwartej struktury i pozwolenie użytkownikowi zdecydować, jak zaimplementować coś, na …

1
gcc / g ++: „Nie ma takiego pliku lub katalogu”
g++ daje mi błędy w formularzu: foo.cc:<line>:<column>: fatal error: <bar>: No such file or directory compilation terminated. To samo dzieje się podczas kompilowania programów w C z gcc. Dlaczego? Uwaga: to pytanie zadawano już wiele razy, ale za każdym razem było to specyficzne dla sytuacji pytających. Celem tego pytania jest …
87 c++  c  gcc  g++  c++-faq 


4
Dlaczego rand () powtarza liczby znacznie częściej w systemie Linux niż Mac?
Wdrażałem hashap w C jako część projektu, nad którym pracuję i używam losowych wstawek do testowania go, gdy zauważyłem, że rand()w Linuksie wydaje się powtarzać liczby znacznie częściej niż na Macu. RAND_MAXto 2147483647 / 0x7FFFFFFF na obu platformach. Sprowadziłem go do tego programu testowego, który tworzy tablicę bajtów RAND_MAX+1-długą, generuje …
86 c  linux  macos  random 

6
Zmieniona tablica w zakresie pliku
Chcę utworzyć stałą tablicę statyczną, która będzie używana w całym moim pliku implementacji Objective-C, podobną do tego na najwyższym poziomie mojego pliku „.m”: static const int NUM_TYPES = 4; static int types[NUM_TYPES] = { 1, 2, 3, 4 }; Planuję użyć NUM_TYPESpóźniej w pliku, więc chciałem umieścić go w zmiennej. …

7
Czy standard C wyraźnie wskazuje wartość prawdy na 0 lub 1?
Wiemy, że wszystkie liczby, które nie są równe, 0są traktowane jak truew C, więc możemy napisać: int a = 16; while (a--) printf("%d\n", a); // prints numbers from 15 to 0 Jednak zastanawiałem się, czy prawda / fałsz są zdefiniowane jako 1/ 0w C, więc wypróbowałem poniższy kod: printf("True = …
86 c 


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.