«c» etiketlenmiş sorular

C, sistem programlama (OS ve gömülü), kütüphaneler, oyunlar ve çapraz platform için kullanılan genel amaçlı bir programlama dilidir. Bu etiket, ISO 9899 standardında tanımlandığı gibi C dili ile ilgili genel sorularla kullanılmalıdır (aksi belirtilmedikçe en son sürüm 9899: 2018 - c89, c99, c11 vb. İle sürüme özgü istekleri de etiketleyin). C, C ++ 'dan farklıdır ve rasyonel bir nedenden yoksun C ++ etiketi ile birleştirilmemelidir.

6
Çok boyutlu diziler bellekte nasıl biçimlendirilir?
C, dinamik olarak aşağıdaki kodu kullanarak yığın üzerinde iki boyutlu bir dizi ayırabilirsiniz biliyorum: int** someNumbers = malloc(arrayRows*sizeof(int*)); for (i = 0; i < arrayRows; i++) { someNumbers[i] = malloc(arrayColumns*sizeof(int)); } Açıkçası, bu aslında bir dizi ayrı tek boyutlu tamsayı dizisine tek boyutlu bir işaretçi dizisi oluşturur ve "Sistem" istediğimde …

3
GCC neden neredeyse aynı C kodu için bu kadar radikal olarak farklı bir montaj üretiyor?
Optimize edilmiş bir ftolişlev yazarken bazı garip davranışlar buldum GCC 4.6.1. Önce kodu göstereyim (açıklık için farklılıkları işaretledim): fast_trunc_one, C: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i >> 23) & 0xff); sign = i & 0x80000000; …

8
Bağımsız Değişken Sayısında Aşırı Yükleme Makrosu
İki makro var FOO2ve FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... FOOAşağıdaki gibi yeni bir makro tanımlamak istiyorum : #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) Ancak bu işe yaramaz, çünkü makrolar argüman sayısına aşırı yüklenmez. Değiştirmeden FOO2ve FOO3bir makro tanımlamak için bir yol yoktur FOO(kullanarak __VA_ARGS__sevk aynı etkiyi elde etmek …
184 c  macros  c-preprocessor 

16
C dosya satır satır okuma
Bu işlevi bir dosyadan bir satır okumak için yazdım: const char *readLine(FILE *file) { if (file == NULL) { printf("Error: file pointer is null."); exit(1); } int maximumLineLength = 128; char *lineBuffer = (char *)malloc(sizeof(char) * maximumLineLength); if (lineBuffer == NULL) { printf("Error allocating memory for line buffer."); exit(1); } …
184 c  file-io  line  std 



8
Brk () sistem çağrısı ne yapar?
Linux programcıları el kitabına göre: brk () ve sbrk (), işlemin veri segmentinin sonunu tanımlayan program sonu konumunu değiştirir. Veri segmenti burada ne anlama geliyor? Yalnızca veri segmenti veya veri, BSS ve yığın birleştirildi mi? Wiki'ye göre: Bazen veriler, BSS ve yığın alanları topluca "veri segmenti" olarak adlandırılır. Yalnızca veri …
183 c  linux  unix  memory-management  brk 

8
Dizeleri düzgün bir şekilde nasıl karşılaştırırım?
Bir kullanıcının bir sözcük veya karakter girmesine, saklamasına ve daha sonra kullanıcı programdan çıkıp tekrar yazana kadar yazdırmasına izin vermek için bir program almaya çalışıyorum. Kodum şöyle görünüyor: #include <stdio.h> int main() { char input[40]; char check[40]; int i=0; printf("Hello!\nPlease enter a word or character:\n"); gets(input); printf("I will now repeat …
183 c  string  strcmp 

2
C99 'restrict' anahtar kelimesinin gerçekçi kullanımı?
Bazı belgelere ve sorulara / cevaplara göz atıyordum ve bahsettiğini gördüm. Temel olarak programcıdan işaretçinin başka bir yere işaret etmek için kullanılmayacağına dair bir vaat olacağını belirten kısa bir açıklama okudum. Herkes bunun gerçekten kullanmaya değer bazı gerçekçi durumlar sunabilir?
183 c  gcc  c99  restrict-qualifier 



6
Objective-C'de bir ENUM'u nasıl tanımlayabilir ve kullanabilirim?
Uygulama dosyamda aşağıda gösterildiği gibi bir numaralandırma ve arayüzümde bu türden bir değişkeni PlayerState thePlayerState olarak bildirdim; ve değişkeni yöntemlerimde kullandım. Ama bunun bildirilmediğine dair hatalar alıyorum. Yöntemlerimde PlayerState türünde bir değişkeni nasıl doğru bir şekilde bildirebilir ve kullanabilirim ?: .M dosyasında @implementation View1Controller typedef enum playerStateTypes { PLAYER_OFF, PLAYER_PLAYING, …
180 iphone  objective-c  c 

16
Statik değişkenler C ve C ++ 'da nerede saklanır?
Yürütülebilir bir dosyanın hangi bölümünde (.BSS, .DATA, diğer) ad çakışması olmaması için statik değişkenler depolanır? Örneğin: foo.c: bar.c: static int foo = 1; static int foo = 10; void fooTest() { void barTest() { static int bar = 2; static int bar = 20; foo++; foo++; bar++; bar++; printf("%d,%d", foo, …



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.