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
Dlaczego pamięć przypięta CUDA jest tak szybka?
Obserwuję znaczne przyspieszenia przesyłania danych, gdy używam pamięci przypiętej do przesyłania danych CUDA. W Linuksie podstawowym wywołaniem systemowym służącym do osiągnięcia tego jest mlock. Ze strony podręcznika man mlocka stwierdza, że ​​zablokowanie strony zapobiega jej zamianie: mlock () blokuje strony w zakresie adresów zaczynając od addr i kontynuując przez len …
84 c++  c  linux  cuda 

4
Różnica między powierzchnią a teksturą (SDL / ogólna)
Czy ktoś może mi wyjaśnić prostymi słowami, jaka jest różnica między fakturą a powierzchnią? Widziałem, że jest używany w SDL2jako SDL_Surfacei SDL_Texture. SDL_Texturejest tworzony, z SDL_Surfacektórego z kolei jest tworzony z obrazu / bitmapy. Oba są zbiorem pikseli. Ale nie widzę głównej różnicy między nimi (czy ma coś wspólnego z …
84 c  graphics  sdl  sdl-2 

3
Jak radzić sobie z kolizjami symboli między bibliotekami połączonymi statycznie?
Jedną z najważniejszych zasad i najlepszych praktyk podczas pisania biblioteki jest umieszczenie wszystkich symboli biblioteki w określonej przestrzeni nazw biblioteki. C ++ ułatwia to dzięki namespacesłowu kluczowemu. W C typowym podejściem jest poprzedzanie identyfikatorów pewnym przedrostkiem specyficznym dla biblioteki. Zasady standardu C umieścić pewne ograniczenia dotyczące tych (na bezpiecznej kompilacji): …

5
Czy snprintf () ZAWSZE kończy się null?
Czy snprintf zawsze przerywa bufor docelowy? Innymi słowy, czy to wystarczy: char dst[10]; snprintf(dst, sizeof (dst), "blah %s", somestr); czy też musisz to robić, jeśli jakiś czas jest wystarczająco długi? char dst[10]; somestr[sizeof (dst) - 1] = '\0'; snprintf(dst, sizeof (dst) - 1, "blah %s", somestr); Interesuje mnie zarówno to, …
84 c  posix  libc 

5
Co powoduje błąd zepsutej rury?
Wiem, że wyrzucany jest błąd pękniętej rury, gdy gniazdo po stronie równorzędnej jest zamknięte. Ale w moim teście zauważyłem, że natychmiastowe wywołanie „wyślij” po tej stronie, gdy strona równorzędna jest zamknięta, nie zawsze prowadzi do błędu zerwanego przewodu. Na przykład: Po zamknięciu gniazda po stronie równorzędnej (próbowałem wyczyścić zamknięcie przez …
84 c  broken-pipe 

10
Dlaczego powinieneś używać strncpy zamiast strcpy?
Edycja: dodałem źródło dla przykładu. Natknąłem się na ten przykład : char source[MAX] = "123456789"; char source1[MAX] = "123456789"; char destination[MAX] = "abcdefg"; char destination1[MAX] = "abcdefg"; char *return_string; int index = 5; /* This is how strcpy works */ printf("destination is originally = '%s'\n", destination); return_string = strcpy(destination, source); …

16
wartość domyślna dla elementu członkowskiego struktury w C
Czy można ustawić wartości domyślne dla jakiegoś elementu członkowskiego struktury? Próbowałem następujących rzeczy, ale spowodowałoby to błąd składni: typedef struct { int flag = 3; } MyStruct; Błędy: $ gcc -o testIt test.c test.c:7: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token test.c: In function ‘main’: test.c:17: …
84 c  struct 

7
Czy są jakieś „wzorce projektowe” w C? [Zamknięte]
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i prawdopodobnie ponownie otworzyć, odwiedź centrum pomocy, aby uzyskać …

7
Zrozumienie makra container_of w jądrze Linuksa
Kiedy przeglądałem jądro Linuksa, znalazłem container_ofmakro, które jest zdefiniowane w następujący sposób: #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \ (type *)( (char *)__mptr - offsetof(type,member) );}) Rozumiem, co robi container_of, ale nie rozumiem ostatniego zdania, czyli (type *)( (char *)__mptr - offsetof(type,member) …


9
Co jest szybsze: x << 1 czy x << 10?
Nie chcę niczego optymalizować, przysięgam, chcę tylko zadać to pytanie z ciekawości. Wiem, że na większości sprzętu jest komenda montaż bitowego przesunięcia (np shl, shr), co stanowi jedno polecenie. Ale czy ma znaczenie (w nanosekundach lub taktowaniu procesora), ile bitów przesuniesz. Innymi słowy, czy którekolwiek z poniższych jest szybsze na …
84 c++  c  performance  cpu  low-level 

8
malloc dla struktury i wskaźnika w C
Załóżmy, że chcę zdefiniować strukturę reprezentującą długość wektora i jego wartości jako: struct Vector{ double* x; int n; }; Teraz przypuśćmy, że chcę zdefiniować wektor y i przydzielić mu pamięć. struct Vector *y = (struct Vector*)malloc(sizeof(struct Vector)); Moje wyszukiwania w Internecie pokazują, że powinienem przydzielić pamięć dla x osobno. y-&gt;x …



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.