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.

11
Czy można * nie * używać funkcji free () w przydzielonej pamięci?
Studiuję inżynierię komputerową i mam kilka kursów elektroniki. Słyszałem, od dwóch moich profesorów (z tych kursów), że jest możliwe, aby uniknąć korzystania z free()funkcji (po malloc(), calloc()itp), ponieważ przestrzenie pamięci przydzielonej prawdopodobnie nie zostaną ponownie wykorzystane przydzielić inną pamięć. Oznacza to, że na przykład, jeśli przydzielisz 4 bajty, a następnie …



15
Zalecane opcje ostrzeżeń gcc dla C [zamknięte]
Zamknięte . To pytanie jest oparte na opinii . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć, podając fakty i cytaty, edytując ten post . Zamknięte 6 lat temu . Popraw to pytanie Inne niż - Jakie inne ostrzeżenia okazały się przydatne? …
83 c  gcc  compiler-errors 


9
Przejście z C ++ do C.
Po kilku latach programowania w C ++ zaproponowano mi ostatnio pracę z kodowaniem w C, w polu embedded. Pomijając pytanie, czy odrzucanie C ++ w polu embedded jest dobre czy złe, jest kilka funkcji / idiomów w C ++, których bardzo bym brakował. Żeby wymienić tylko kilka: Ogólne, bezpieczne dla …
83 c++  c 

1
Wydajność pętli kodu C [ciąg dalszy]
To pytanie jest kontynuacją mojego pytania tutaj (za radą Mistycznego): Wydajność pętli kodu C. Kontynuując moje pytanie, kiedy używam instrukcji spakowanych zamiast instrukcji skalarnych, kod używający funkcji wewnętrznych wyglądałby bardzo podobnie: for(int i=0; i<size; i+=16) { y1 = _mm_load_ps(output[i]); … y4 = _mm_load_ps(output[i+12]); for(k=0; k<ksize; k++){ for(l=0; l<ksize; l++){ w …

7
Jak przekazać zmienną liczbę argumentów do printf / sprintf
Mam klasę, która zawiera funkcję „błędu”, która sformatuje jakiś tekst. Chcę zaakceptować zmienną liczbę argumentów, a następnie sformatować je za pomocą printf. Przykład: class MyClass { public: void Error(const char* format, ...); }; Metoda Error powinna przyjąć parametry, wywołać printf / sprintf w celu sformatowania go, a następnie coś z …



6
Jak zapobiec wywoływaniu przez scanf przepełnienia bufora w C?
Używam tego kodu: while ( scanf("%s", buf) == 1 ){ Jaki byłby najlepszy sposób, aby zapobiec możliwemu przepełnieniu buforu, aby można było przekazywać ciągi o losowej długości? Wiem, że mogę ograniczyć ciąg wejściowy, wywołując na przykład: while ( scanf("%20s", buf) == 1 ){ Ale wolałbym mieć możliwość przetwarzania wszystkiego, co …

4
Czy C jest znacznie szybszy niż C ++ [zamknięty]
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ć …
83 c++  c  performance 

6
#ifdef wewnątrz #define
Próbuję napisać coś takiego: #define COV_ON(x) \ #ifdef COVERAGE_TOOL \ _Pragma (COVERAGE #x) #endif Czy jest jakiś sposób, aby to zdefiniować COV_ON? Wiem, że to, co zrobiłem powyżej, jest złe, ponieważ nie mogę mieć #ifdefwewnątrz #define. ( #nie jest dozwolonym znakiem w #define). Czy jest więc jakieś rozwiązanie?
83 c  c-preprocessor 

3
Po co odrzucać wartość zwrotną free?
Czytam książkę ( Programowanie z wątkami POSIX autorstwa Butenhof, 1997), która używa C, i natrafiłem na następujący wiersz: (void)free(data); Tutaj datajest tylko wskaźnikiem do przydzielonej struktury, data = malloc(sizeof(my_struct_t)); Dlaczego jest wynikiem freejest wrzucony do void? Z mojego rozumienia C wydaje się to nie mieć sensu z dwóch powodów: Funkcja …
82 c  casting  free  void  legacy-code 

10
Czy zmiana nazw argc i argv w funkcji main jest bezpieczna?
Wiele programów używa standardowych nazw dla wielu argumentów i tablic łańcuchów. Prototyp wygląda głównych funkcji takich jak: int main(int argc, char *argv[]);. Ale czy mógłbym coś zepsuć, wybierając niestandardowe nazwy dla tych zmiennych? Na przykład int main(int n_of_args, char *args[]); W kontekście kompilatora wszystko jest w porządku. Te zmienne są …
82 c++  c  main 

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.