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.

7
Czy użycie int bez podpisu zamiast ze znakiem jest bardziej prawdopodobne, że spowoduje błędy? Czemu?
W przewodniku Google C ++ Style Guide na temat „Unsigned Integers” jest to sugerowane Ze względu na przypadek historyczny standard C ++ używa również liczb całkowitych bez znaku do reprezentowania rozmiaru kontenerów - wielu członków organizacji normalizacyjnej uważa, że ​​jest to błąd, ale na tym etapie praktycznie nie można tego …

6
Wykrywanie architektury procesora w czasie kompilacji
Jaki jest najbardziej niezawodny sposób na poznanie architektury procesora podczas kompilowania kodu w C lub C ++? O ile wiem, różne kompilatory mają swój własny zestaw niestandardowych definicji preprocesorów ( _M_X86w MSVS __i386__, __arm__w GCC itp.). Czy istnieje standardowy sposób wykrywania architektury, dla której tworzę? Jeśli nie, czy istnieje źródło …

12
Wykrywanie podpisanego przepełnienia w C / C ++
Na pierwszy rzut oka to pytanie może wydawać się duplikatem pytania Jak wykryć przepełnienie liczb całkowitych? jednak w rzeczywistości jest znacząco inny. Odkryłam, że podczas wykrywania przepełnienia całkowitą bez znaku jest dość trywialne, wykrywanie podpisane przepełnienie w C / C ++ jest rzeczywiście trudniejsze, niż sądzi większość ludzi. Najbardziej oczywistym, …

7
Inicjalizacja całej tablicy 2D z jedną wartością
Z następującą deklaracją int array[ROW][COLUMN]={0}; Otrzymuję tablicę ze wszystkimi zerami, ale z następującym int array[ROW][COLUMN]={1}; Nie otrzymuję tablicy z jedną wartością. Wartością domyślną jest nadal 0. Dlaczego to zachowanie i jak mogę zainicjować wszystkie 1? EDYCJA: Właśnie zrozumiałem, że użycie memsetwartości 1 spowoduje ustawienie każdego bajtu na 1, a zatem …

5
„Int * nums = {5, 2, 1, 4}” powoduje błąd segmentacji
int *nums = {5, 2, 1, 4}; printf("%d\n", nums[0]); powoduje segfault, podczas gdy int nums[] = {5, 2, 1, 4}; printf("%d\n", nums[0]); nie. Teraz: int *nums = {5, 2, 1, 4}; printf("%d\n", nums); wydruki 5. Opierając się na tym, przypuszczałem, że notacja inicjalizacji tablicy {} ślepo ładuje te dane do …
81 c  arrays  pointers 

6
Stałe wyliczeniowe zachowują się inaczej w C i C ++
Dlaczego to: #include <stdio.h> #include <limits.h> #include <inttypes.h> int main() { enum en_e { en_e_foo, en_e_bar = UINT64_MAX, }; enum en_e e = en_e_foo; printf("%zu\n", sizeof en_e_foo); printf("%zu\n", sizeof en_e_bar); printf("%zu\n", sizeof e); } drukować 4 8 8w C i 8 8 8C ++ (na platformie z 4-bajtowymi liczbami całkowitymi)? …
81 c++  c 

4
Co jest specjalnego w strukturach?
Wiem, że w C nie możemy zwrócić tablicy z funkcji, ale wskaźnik do tablicy. Ale chcę wiedzieć, na czym polega szczególna cecha structstego, że są one zwracane przez funkcje, nawet jeśli mogą zawierać tablice. Dlaczego structopakowanie sprawia, że ​​następujący program jest ważny? #include <stdio.h> struct data { char buf[256]; }; …

4
Wątki i sygnały POSIX
Próbowałem zrozumieć zawiłości interakcji wątków POSIX i sygnałów POSIX. W szczególności interesuje mnie: Jaki jest najlepszy sposób kontrolowania, do którego wątku jest dostarczany sygnał (zakładając, że nie jest to śmiertelne)? Jaki jest najlepszy sposób poinformowania innego wątku (który może być faktycznie zajęty), że sygnał dotarł? (Wiem już, że używanie zmiennych …
81 c  pthreads  signals 

5
Jakie są najlepsze (przenośne) wieloplatformowe biblioteki matematyczne o dowolnej precyzji? [Zamknięte]
Zamknięte. To pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat przepełnienia stosu. Zamknięte 5 lat temu . Popraw to pytanie Szukam dobrej biblioteki matematycznej o dowolnej precyzji w C lub C ++. Czy mógłbyś dać mi …
81 c++  c  biginteger  bigdecimal  gmp 

8
Zastąpienie ld złotem - jakieś doświadczenie?
Czy ktoś próbował użyć goldzamiast ld? gold obiecuje być znacznie szybszy niż ld, więc może pomóc przyspieszyć cykle testowe dla dużych aplikacji C ++, ale czy może być używany jako zamiennik ld? Czy mogę gcc/ g++bezpośrednio zadzwonić gold.? Czy są jakieś znane błędy lub problemy? Chociaż goldod jakiegoś czasu jest …


1
Dodawanie C za pomocą modułu
Natrafiłem na intrygujący kod C, który drukuje A + B, ale mam problem ze zrozumieniem. Format wejściowy: A B gdzie A, Bliczby całkowite od 0i 10oddzielone przez jedną przestrzeń. Kod: main( n ) { gets( &n ); printf("%d", n % 85 - 43); } To było przeznaczone do krótkiego kodowania, …
81 c  addition  mod 

9
strcpy vs. memcpy
Jaka jest różnica między memcpy()i strcpy()? Próbowałem go znaleźć za pomocą programu, ale oba dają ten sam wynik. int main() { char s[5]={'s','a','\0','c','h'}; char p[5]; char t[5]; strcpy(p,s); memcpy(t,s,5); printf("sachin p is [%s], t is [%s]",p,t); return 0; } Wynik sachin p is [sa], t is [sa]
81 c  memcpy  strcpy 

6
Dlaczego #pragma nie jest raz przyjęta automatycznie?
Jaki jest sens mówienia kompilatorowi, aby włączył plik tylko raz? Czy nie miałoby to domyślnie sensu? Czy jest jakiś powód, aby wielokrotnie dołączać jeden plik? Dlaczego po prostu tego nie założyć? Czy ma to związek z konkretnym sprzętem?
81 c++  c  pragma 

6
Opracowywanie API opakowującego C dla kodu C ++ zorientowanego obiektowo
Chcę opracować zestaw interfejsów API C, które będą otaczać nasze istniejące interfejsy API C ++, aby uzyskać dostęp do naszej podstawowej logiki (napisanej w zorientowanym obiektowo C ++). Zasadniczo będzie to interfejs API kleju, który umożliwia korzystanie z naszej logiki C ++ w innych językach. Jakie są dobre samouczki, książki …
81 c++  c  wrapper 

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.