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.


6
Jak uzyskać bieżący katalog w programie C?
Robię program w C, w którym muszę pobrać katalog, z którego program jest uruchamiany. Ten program jest napisany dla komputerów z systemem UNIX. Patrzyłem na opendir()i telldir(), ale telldir()zwraca a off_t (long int), więc to naprawdę mi nie pomaga. Jak mogę uzyskać bieżącą ścieżkę w ciągu (tablica znaków)?


15
Jak uniknąć przepełnienia w wyrażeniu. A * B - C * D
Muszę obliczyć wyrażenie, które wygląda następująco:, A*B - C*Dgdzie ich typy to: signed long long int A, B, C, D; Każda liczba może być naprawdę duża (nie przepełniać swojego typu). Chociaż A*Bmoże spowodować przepełnienie, w tym samym czasie wyrażenieA*B - C*D może być naprawdę małe. Jak mogę to poprawnie obliczyć? …
161 c++  c  integer-overflow 

2
Dlaczego alfabet jest podzielony na wiele zakresów w tym kodzie C?
W bibliotece niestandardowej zobaczyłem implementację: inline int is_upper_alpha(char chValue) { if (((chValue >= 'A') && (chValue <= 'I')) || ((chValue >= 'J') && (chValue <= 'R')) || ((chValue >= 'S') && (chValue <= 'Z'))) return 1; return 0; } Czy to jajko wielkanocne, czy też jakie są zalety w porównaniu …
161 c++  c  character  toupper 

8
Literały ciągów: gdzie one idą?
Interesuje mnie, gdzie są przydzielane / przechowywane literały ciągów. Znalazłem tutaj jedną intrygującą odpowiedź , mówiącą: Zdefiniowanie ciągu w linii faktycznie osadza dane w samym programie i nie można go zmienić (niektóre kompilatory pozwalają na to sprytną sztuczką, nie przejmuj się). Ale miało to coś wspólnego z C ++, nie …



14
Najszybsza metoda przechwytywania ekranu w systemie Windows
Chcę napisać program do wyświetlania ekranu dla platformy Windows, ale nie jestem pewien, jak zrobić zrzut ekranu. Jedyną metodą, o której wiem, jest użycie GDI, ale jestem ciekawy, czy istnieją inne sposoby, aby to zrobić, a jeśli tak, to który generuje najmniejsze koszty? Szybkość jest priorytetem. Program do wyświetlania ekranu …
159 c++  c  windows 


14
Nie można skompilować programu w C na komputerze Mac po uaktualnieniu do Mojave
Użyłem polecenia gcc na terminalu do kompilowania programów w C, ale nagle, po aktualizacji systemu operacyjnego mojego Maca (do macOS 10.14 Mojave i XCode 10.0), zacząłem otrzymywać wiadomość: test.c:8:10: fatal error: stdio.h: No such file or directory #include <stdio.h> ^~~~~~~~~ compilation terminated. Mam już zainstalowane gcc, ponieważ mogę je znaleźć …
159 c  macos  gcc  terminal 


3
deklaracja funkcji nie jest prototypem
Mam utworzoną przeze mnie bibliotekę, mylib.c: #include <mylib.h> int testlib() { printf("Hello world\n"); return (0); } mylib.h: #include <stdio.h> extern int testlib(); W moim programie próbowałem wywołać tę funkcję biblioteczną: myprogram.c: #include <mylib.h> int main (int argc, char *argv[]) { testlib(); return (0); } Kiedy próbuję skompilować ten program, pojawia …
158 c  gcc 


9
Dlaczego wypływ z końca funkcji innej niż void bez zwracania wartości nie powoduje błędu kompilatora?
Odkąd wiele lat temu zdałem sobie sprawę, że domyślnie nie powoduje to błędu (przynajmniej w GCC), zawsze zastanawiałem się, dlaczego? Rozumiem, że możesz wysyłać flagi kompilatora, aby wygenerować ostrzeżenie, ale czy nie powinno to zawsze być błędem? Dlaczego ma sens, aby funkcja nieważna, która nie zwraca wartości, była prawidłowa? Przykład …
158 c++  c  gcc  g++ 

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.