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.


9
Jak używać interfejsu API gniazda C w języku C ++ w systemie z / OS
Mam problemy uzyskiwanie c gniazd API do pracy odpowiednio w C++dniu z/OS. Chociaż włączam sys/socket.h, nadal pojawiają się błędy czasu kompilacji, które mówią mi, że AF_INETnie jest zdefiniowane . Czy brakuje mi czegoś oczywistego, czy jest to związane z faktem, że bycie na z/OSłóżku znacznie komplikuje moje problemy? Aktualizacja : …
158 c++  c  sockets  mainframe  zos 

24
Przydatne flagi GCC dla C
Oprócz ustawiania -Walli ustawiania -std=XXX, jakie inne naprawdę przydatne, ale mniej znane flagi kompilatora są dostępne do użytku w C? Szczególnie interesują mnie wszelkie dodatkowe ostrzeżenia i / lub przekształcanie ostrzeżeń w błędy w niektórych przypadkach, aby całkowicie zminimalizować wszelkie przypadkowe niezgodności typów.
157 c  gcc  compiler-flags 

8
Co to jest biblioteka uruchomieniowa języka C?
Czym właściwie jest biblioteka wykonawcza języka C i do czego jest używana? Szukałem, szukałem w Google jak diabeł, ale nie mogłem znaleźć nic lepszego niż Microsoft: „Biblioteka wykonawcza firmy Microsoft zapewnia procedury programowania dla systemu operacyjnego Microsoft Windows. Procedury te automatyzują wiele typowych zadań programistycznych, których nie zapewnia języki C …
157 c  runtime 

11
memcpy () vs memmove ()
Próbuję zrozumieć różnicę między memcpy()i memmove(), i przeczytałem tekst, memcpy()który nie uwzględnia nakładającego się źródła i miejsca docelowego, podczas gdy memmove()tak. Jednak gdy wykonuję te dwie funkcje na nakładających się blokach pamięci, obie dają ten sam wynik. Na przykład weź następujący przykład MSDN na stronie memmove()pomocy: - Czy istnieje lepszy …
157 c  memcpy  memmove 

22
Orientacja obiektowa w C
Jaki byłby zestaw sprytnych hacków preprocesora (kompatybilnych z ANSI C89 / ISO C90), które umożliwiają jakąś brzydką (ale użyteczną) orientację obiektową w C? Znam kilka różnych języków zorientowanych obiektowo, więc nie odpowiadaj na pytania typu „Naucz się C ++!”. Przeczytałem " Programowanie obiektowe z ANSI C " (uwaga: format PDF …
157 c  oop  object 

10
Czy są jakieś wady przekazywania struktur przez wartość w C, zamiast przekazywania wskaźnika?
Czy są jakieś wady przekazywania struktur przez wartość w C, zamiast przekazywania wskaźnika? Jeśli struktura jest duża, istnieje oczywiście aspekt wydajności kopiowania dużej ilości danych, ale w przypadku mniejszej struktury powinno to być to samo, co przekazywanie kilku wartości do funkcji. Może być nawet bardziej interesujący, gdy jest używany jako …

9
Dlaczego warto używać bzero zamiast memset?
Na zajęciach z programowania systemów, w których brałem udział w poprzednim semestrze, musieliśmy zaimplementować podstawowy klient / serwer w języku C. Podczas inicjowania struktur, takich jak sock_addr_inlub bufory znaków (których używaliśmy do przesyłania danych między klientem a serwerem) profesor poinstruował nas, abyśmy tylko ich używali, bzeroa nie memsetinicjowali. Nigdy nie …

23
Ustawienie zmiennej na NULL po zwolnieniu
W mojej firmie obowiązuje zasada kodowania, która mówi, że po zwolnieniu pamięci należy zresetować zmienną do NULL. Na przykład ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Czuję, że w przypadkach takich jak w kodzie pokazanym powyżej, ustawienie na NULLnie …


5
Czy przesunięcie bitowe zależy od endianizmu?
Przypuśćmy, że mam numer 'numb'=1025 [00000000 00000000 00000100 00000001] reprezentowaną : Na maszynie Little-Endian: 00000001 00000100 00000000 00000000 Na maszynie Big-Endian: 00000000 00000000 00000100 00000001 Teraz, jeśli zastosuję lewy Shift na 10 bitach (tj .: numb << = 10), powinienem mieć: [A] Na maszynie Little-Endian: Jak zauważyłem w GDB, Little …
156 c  endianness 

9
Gdzie w pamięci są moje zmienne przechowywane w C?
Biorąc pod uwagę, że pamięć jest podzielona na cztery segmenty: dane, stertę, stos i kod, gdzie są zmienne globalne, zmienne statyczne, stałe typy danych, zmienne lokalne (zdefiniowane i zadeklarowane w funkcjach), zmienne (w funkcji głównej), wskaźniki i dynamicznie przydzielana przestrzeń (za pomocą malloc i calloc) zostaje zapisana w pamięci? Myślę, …

5
Niezgodna niejawna deklaracja funkcji wbudowanej „malloc”
Otrzymuję ten błąd: ostrzeżenie: niekompatybilna niejawna deklaracja funkcji wbudowanej „malloc” Próbuję to zrobić: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Dla porównania, struktura używana pod ręką to: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; Nie widzę nic złego w tym, co zrobiłem. Po prostu tworzę a tempListo …
155 c  struct  malloc 

21
Podziel ciąg z ogranicznikami w C
Jak napisać funkcję do dzielenia i zwracania tablicy dla ciągu z ogranicznikami w języku programowania C? char* str = "JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC"; str_split(str,',');
155 c  string  split 

7
„pływająca” a „podwójna” precyzja
Kod float x = 3.141592653589793238; double z = 3.141592653589793238; printf("x=%f\n", x); printf("z=%f\n", z); printf("x=%20.18f\n", x); printf("z=%20.18f\n", z); da ci wyjście x=3.141593 z=3.141593 x=3.141592741012573242 z=3.141592653589793116 gdzie w trzecim wierszu danych wyjściowych 741012573242jest śmieci, a w czwartym wierszu 116. Czy gra podwójna zawsze ma 16 cyfr znaczących, podczas gdy zmienna zawsze ma …
155 c  floating-point 

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.