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.

1
Jaki jest cel słowa kluczowego static w parametrze tablicy funkcji, takim jak „char s [static 10]”?
Przeglądając jakiś kod źródłowy natknąłem się na taką funkcję: void someFunction(char someArray[static 100]) { // do something cool here } Po pewnym eksperymentowaniu wydaje się, że mogą się tam również pojawić inne kwalifikatory: void someFunction(char someArray[const]) { // do something cool here } Wygląda na to, że kwalifikatory są dozwolone …
144 c  arrays  parameters  static 

6
Jaka jest zaleta __builtin_expect GCC w instrukcjach if else?
Natknąłem się na plik, #definew którym używają __builtin_expect. Dokumentacja mówi: Wbudowana funkcja: long __builtin_expect (long exp, long c) Możesz użyć, __builtin_expectaby dostarczyć kompilatorowi informacje przewidywania gałęzi. Ogólnie rzecz biorąc, do tego ( -fprofile-arcs) należy używać rzeczywistych opinii o profilu , ponieważ programiści są notorycznie słabi w przewidywaniu rzeczywistego działania ich …
144 c  linux  gcc  built-in 


6
Czy możemy pisać komentarze w nazwach zmiennych?
int main() { i/*nt*/a = 10; return 0; } Jeśli mam powyższy kod i chcę policzyć tokeny, czy będzie to 14 czy 13 tokenów? Czy wpisywanie komentarza w nazwie zmiennej jest poprawne? Można założyć, że int i, int a, int iasą zdefiniowane globalnie.


9
Jaka jest różnica między sigaction a signal?
Miałem właśnie dodać dodatkowy moduł obsługi sygnału do aplikacji, którą tu mamy i zauważyłem, że autor użył sigaction()do skonfigurowania innych programów obsługi sygnału. Miałem zamiar użyć signal(). Zgodnie z konwencją powinienem się kierować, sigaction()ale jeśli pisałem od zera, którą wybrać?
143 c  signals  posix 

2
Znaczenie flagi -pthread podczas kompilacji
W różnych wielowątkowych projektach C i C ++ widziałem -pthreadflagę stosowaną zarówno na etapie kompilacji, jak i linkowania, podczas gdy inne w ogóle jej nie używają i po prostu przechodzą -lpthreaddo etapu łączenia. Czy istnieje niebezpieczeństwo niekompilowania i linkowania z -pthreadflagą - czyli co -pthreadwłaściwie robi? Interesują mnie przede wszystkim …
143 c++  c  linux  pthreads 

4
Jaki jest związek między BLASEM, LAPACKIEM i ATLASEM
Nie rozumiem, jak BLAS, LAPACK i ATLAS są powiązane i jak mam ich używać razem! Przejrzałem wszystkie ich podręczniki i mam ogólny pomysł na BLAS i LAPACK oraz jak ich używać z kilkoma przykładami, które znalazłem, ale nie mogę znaleźć żadnych rzeczywistych przykładów użycia ATLAS, aby zobaczyć, jak to jest …
143 c  lapack  blas  atlas 

16
Wskaźnik do wyjaśnienia wskaźnika
Śledziłem ten samouczek o tym, jak działa wskaźnik do wskaźnika . Zacytuję odpowiedni fragment: int i = 5, j = 6, k = 7; int *ip1 = &i, *ip2 = &j; Teraz możemy ustawić int **ipp = &ip1; i ippwskazuje, na ip1które wskazuje i. *ippjest ip1, i **ippjest i, lub …
142 c  pointers 

6
_DEBUG vs NDEBUG
Której definicji preprocesora należy użyć do określenia sekcji kodu do debugowania? Użyj #ifdef _DEBUGlub #ifndef NDEBUGczy jest lepszy sposób, aby to zrobić, np. #define MY_DEBUG? Myślę, że _DEBUGjest to specyficzne dla Visual Studio, czy standard NDEBUG?
142 c++  c  debugging 


6
Czy istnieje alternatywna funkcja uśpienia w C do milisekund?
Mam kod źródłowy, który został skompilowany w systemie Windows. Konwertuję go, aby działał w systemie Red Hat Linux. Kod źródłowy zawiera <windows.h>plik nagłówkowy, a programista użył tej Sleep()funkcji, aby czekać przez okres milisekund. To nie zadziała w systemie Linux. Mogę jednak użyć tej sleep(seconds)funkcji, ale używa ona liczby całkowitej w …
142 c  linux  sleep 

30
Ukryte funkcje C
Zamknięte . To pytanie i odpowiedzi na nie są zablokowane, ponieważ pytanie nie dotyczy tematu, ale ma znaczenie historyczne. Obecnie nie przyjmuje nowych odpowiedzi ani interakcji. Wiem, że za wszystkimi implementacjami kompilatorów C stoi standard, więc nie powinno być żadnych ukrytych funkcji. Mimo to jestem pewien, że wszyscy programiści C …
141 c  hidden-features 

21
Konwertuj zmienną typedef-c na jej odpowiednik w postaci łańcucha
Zakładając, że mam deklarację typedef w swoim pliku .h jako taką: typedef enum { JSON, XML, Atom, RSS } FormatType; Chciałbym zbudować funkcję, która konwertuje wartość liczbową typu typedef na ciąg. Na przykład, jeśli wiadomość [self toString:JSON]została wysłana; zwróci „JSON”. Funkcja wyglądałaby mniej więcej tak: -(NSString *) toString:(FormatType)formatType { //need …
141 c  objective-c  enums  typedef 

16
Jaki jest cel bloku „if (0)” w bloku if-else?
Moje pytanie dotyczy linii, o której wspomniałem w temacie i którą widzę w wielu miejscach w kodzie produkcyjnym. Ogólny kod wygląda następująco: if (0) { // Empty braces } else if (some_fn_call()) { // actual code } else if (some_other_fn_call()) { // another actual code ... } else { // …
141 c  if-statement 

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.