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 uruchomić program w C na Mac OS X za pomocą terminala?
Jestem nowy w C. Oto moje „Witaj, świecie!” program. #include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; } Po próbie uruchomienia go za pomocą terminala mówi: MacBook-Pro-MacBook:~ macbook$ /Users/macbook/Desktop/peng/Untitled1 -bash: /Users/macbook/Desktop/peng/Untitled1: Permission denied MacBook-Pro-MacBook:~ macbook$ Czemu?
81 c  macos  bash 

3
Zwiększanie „zamaskowanych” zbiorów bitów
Obecnie jestem w trakcie pisania modułu wyliczającego drzewa, w którym napotkałem następujący problem: Patrzę na zamaskowane bitsety, czyli bity, w których ustawione bity są podzbiorem maski, czyli 0000101z maską 1010101. Chcę tylko zwiększyć zestaw bitów, ale tylko w odniesieniu do bitów maskowanych. W tym przykładzie wynikiem będzie 0010000. Aby było …

3
Dlaczego kod miałby aktywnie zapobiegać optymalizacji wywołań końcowych?
Tytuł pytania może być trochę dziwny, ale chodzi o to, że o ile wiem, nic nie przemawia przeciwko optymalizacji wywołań ogonowych. Jednak podczas przeglądania projektów open source natknąłem się już na kilka funkcji, które aktywnie próbują powstrzymać kompilator przed optymalizacją wywołań ogonowych, na przykład implementację CFRunLoopRef, która jest pełna takich …

3
Dlaczego pad GCC działa z NOP?
Pracuję z C przez krótki czas i bardzo niedawno zacząłem zajmować się ASM. Kiedy kompiluję program: int main(void) { int a = 0; a += 1; return 0; } Demontaż objdump ma kod, ale nops po ret: ... 08048394 <main>: 8048394: 55 push %ebp 8048395: 89 e5 mov %esp,%ebp 8048397: …
81 c  gcc  assembly 

9
Czy można zmodyfikować ciąg znaków w C?
Przez kilka godzin walczyłem z różnymi samouczkami w języku C i książkami związanymi ze wskaźnikami, ale naprawdę chcę wiedzieć, czy można zmienić wskaźnik znaku po jego utworzeniu. Oto, czego próbowałem: char *a = "This is a string"; char *b = "new string"; a[2] = b[1]; // Causes a segment fault …
81 c  string  debugging 

4
Wieloliniowe makra preprocesora
Jak zrobić makro preprocesora wieloliniowego? Wiem, jak zrobić jedną linię: #define sqr(X) (X*X) ale potrzebuję czegoś takiego: #define someMacro(X) class X : public otherClass { int foo; void doFoo(); }; Jak to działa? To jest tylko przykład, rzeczywiste makro może być bardzo długie.
81 c++  c  c-preprocessor 

10
Wypełnienie strun w C
Napisałem tę funkcję, która ma wykonywać StringPadRight ("Hello", 10, "0") -> "Hello00000". char *StringPadRight(char *string, int padded_len, char *pad) { int len = (int) strlen(string); if (len >= padded_len) { return string; } int i; for (i = 0; i < padded_len - len; i++) { strcat(string, pad); } return …
80 c  string  padding 

4
Czy wykonywanie memcpy (0,0,0) jest bezpieczne?
Nie jestem dobrze zorientowany w standardzie C, więc proszę o wyrozumiałość. Chciałbym wiedzieć, czy standard gwarantuje, że memcpy(0,0,0)jest to bezpieczne. Jedynym ograniczeniem, jakie mogłem znaleźć, jest to, że jeśli regiony pamięci nakładają się, to zachowanie jest niezdefiniowane ... Ale czy możemy wziąć pod uwagę, że obszary pamięci nakładają się tutaj?

7
Dlaczego strlcpy i strlcat są uważane za niebezpieczne?
Rozumiem to strlcpyi strlcatzostały zaprojektowane jako bezpieczne zamienniki dla strncpyi strncat. Jednak niektórzy ludzie nadal uważają, że są niepewni i po prostu powodują inny rodzaj problemu . Czy ktoś może podać przykład, jak użycie strlcpyor strlcat(tj. Funkcji, która zawsze kończy swoje łańcuchy o wartości null) może prowadzić do problemów z …
80 c  security  strncpy  strlcpy 

6
Najlepsza metoda pomiaru czasu w C?
Jaki jest najlepszy sposób na synchronizację sekcji kodu z wysoką rozdzielczością i przenośnością? /* Time from here */ ProcessIntenseFunction(); /* to here. */ printf("Time taken %d seconds %d milliseconds", sec, msec); Czy istnieje standardowa biblioteka, która miałaby rozwiązanie wieloplatformowe?
80 c  performance  timer  timing 



1
Python: dlaczego * i ** są szybsze niż / i sqrt ()?
Podczas optymalizacji kodu zdałem sobie sprawę z następujących kwestii: >>> from timeit import Timer as T >>> T(lambda : 1234567890 / 4.0).repeat() [0.22256922721862793, 0.20560789108276367, 0.20530295372009277] >>> from __future__ import division >>> T(lambda : 1234567890 / 4).repeat() [0.14969301223754883, 0.14155197143554688, 0.14141488075256348] >>> T(lambda : 1234567890 * 0.25).repeat() [0.13619112968444824, 0.1281130313873291, 0.12830305099487305] i również: …



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.