Bu yazıda sizlere C' de programlama yaparken kullanabileceğiniz bazı ipuçlarından ve hilelerden bahsetmek istiyorum. Burada anlatacaklarımdan bazıları genel kurallar içinde C programı yazmaya aykırı kod parçaları da olabilir ama adı üstünde, konumuz: "Hileler". Eğer bir değişkenin byte' larını ayrı ayrı değiştirmek istiyorsanız, bunu yapmanın kolay bir yolu var. Örneğin x değişkeninizi unsigned int olarak tanımladınız. Böylelikle x, 2byte' lık bir değişken olmuştur. x değişkeninin 2 byte' ını da ayrı ayrı değiştirmek için, char kullanılır. Char, her zaman bir byte olur. Her byte' ı ayrı ayrı ele alınıp değiştirmek için derleyiciye o byte' ların char olduğunu göstermemiz gerekir ve sonra da değişiklik yapmamız gerekir: İlk byte' ı 4 yapalım: &i) = 4; İkinci byte'ı 15 yapalım: &i) + 1) = 15; Intel tabanlı bilgisayarlarda bu işlemler ' in değerini şöyle değiştirecektir: 15 256+4=3844 Bu hileyi kullanırken bir çok bilgisayar sisteminde değişken tiplerinin farklı kaydedildiklerine dikkat edin. Mesela bir başka sistemde sonuç: 4 256+15=1039 olabilir! Değişken tiplerinin uzunlukları da standard değildir. Bir tamsayı 2 byte iken başka sistemde 1 byte olabilir! C' deki çok yararlı işlemlerden biri de?: dir. Örneğin; i = i 4? 0 : i + 1; kod satırında I 4' ise I' yi sıfırlar, değilse o anki değerine 1 ekler. Eğer bir değişkenin adres değerini gerçek değerinden daha fazla kullanıyorsanız, her seferinde & işaretini kullanmak yerine 1 elemanlı bir dizi tanımlayabilirsiniz: Kod: int main yerine; Kod: int main kullanılabilir. Sadece iki değişken ile swap işleminin yapabilir misiniz? İşaretçiler ile biraz düşünülürse bu mümkün! a' nın 1, b' nin 2 olduğunu düşünürsek; a^=b; b=^a; a^=b; Bu işlem üçüncü bir değişkene gerek kalmadan iki değerin yerini değiştirmemizi sağlar. Ayrıca bu işlem çok hızlıdır. Çünkü; a' nın 9 (1001 ikilik sistemde), b' nin de 6 (0110 ikilik sistemde) olduğunu varsayalım: kodda adım adım ilerlersek, a^=b; : a=a XOR b, a = 1111 b=^a; : b=a XOR b, b=1001 a^=b; : a=a XOR b, a=0110 Sonuç, yer değiştirme tamamlandı!! İki değer arasında değişip duran bir değişken nasıl elde edilir? Bunu bir örnekle açıklayalım. Örneği istenilen iki değer çevirmek gerçekten de çok kolay. Örneğimizde 8 ve 3 değerlerini seçelim. Kod: int a = 3, i; for (i = 0; i < 10; i++) Bu kod bizlere 3 ve 8 arasında değişip duran a değişkenini göstermektedir. a, başlangıçta 3 yapılır. Sonra bir for döngüsünde a değişkenine 11-3 değeri atanır ve 8 olur. Döngünün diğer tekrarında a değişkenine 11-8 değeri atanır ve böyle sürüp gider. Bu algoritma için şöyle bir genel formül yaratabiliriz: x ve y arasında değişen bir değişken için, sonuç = - sonuç ' tur. Mr.666 1337