Katıştırılmış Neden Kesinlikle C / C ++ [kapalı]


15

Kolayca cevaplanamayacağı için bu soruyu beğenmedim ama belki de yeniden ifade edebilirim: "Gömülü dilleri değiştirmekten neyi uzak tutar?"

Örneğin, gömülü için hemen hemen C / C ++ görüyoruz (Sanırım daha önce ADA'nın da bahsettiğini duydum? Yanlışsam beni düzelt)

Ancak Gömülü dünyayı dilleri değiştirmekten tam olarak koruyan nedir? Sadece C'nin kullanımı çok kolay mı yoksa C'nin her şey yolunda gittiğinden bir değişiklik için gerçekten bir "ihtiyaç" yok mu?

Bu her zaman beni şaşırttı, ben şikayetçi değilim. Birkaç dilde tutmak, şeyleri standartlaştırır. Ama yine de soru var.

Bunun bir tür Öznel soru olduğunun farkındayım, ancak asıl sorum "EĞER / NE ZAMAN" değil, "Neden"


2
Gömülü sistemlerde görmek istediğiniz belirli bir üst düzey dil var mı? DÜZENLEME: ya da daha doğrusu, C'nin sağlamadığı dil özellikleri nelerdir?
Jon L

1
@JonL - C'nin olmasını dilediğim bir dizi düşük seviye özellik var. EG daha büyük bit / nibble / bayt / kelime manipülasyonu. Daha iyi güvenlik desteği, EG Ada'nın sahip olduğu özellikler.
Rocketmagnet

3
Gömülü kesinlikle C değil. İşte gömülü sistemler için bir dizi üst düzey dil: electronics.stackexchange.com/questions/3423/…
Kellenjb

1
"Gömülü" farklı anlamlara sahiptir. Ekmek kızartma makinesi çalıştıran 4 bitlik bir mikro denetleyici, ECU veya Set Üstü Kutusundan farklıdır. Bu spektrum sorunuzun cevaplanmasını zorlaştırıyor.
Toby Jaffey

1
Ve beklendiği gibi, bu kapatıldı. Umduğum bu soru kaliteli cevaplar alacak ve insanlar bunu büyük bir soru olarak tutmak için çalışacaktı, durum böyle değil. Bunun yerine, birden fazla oy alan bir cümle olan birçok cevap alıyoruz, üzerinde bayraklar bolluğu ile inişli çıkışlı bir savaşa sahip olan bir cevabımız var ve diğer cevaplar 1 gün içinde daha fazla bayrak ürettikten sonra sitenin geri kalanı birleşti . Sorun şu ki, birçok insan için neden değişmedikleri konusunda birçok farklı doğru cevap var.
Kortuk

Yanıtlar:


18

Her şeyden önce: "gömülü" unutun, çünkü bu yararlı bir ayrım değildir. En önemli özellik "kaynak kısıtlı" dır. En önemli kaynak genellikle zamandır, bu durumda gerçek zamanlı sistemler hakkında konuşuruz, ancak aynı zamanda bellek veya güç de olabilir.

  • Yeni dil kabulü zor ve nadirdir. Yeniden eğitim, yeni araçlar ve yeni dil ile çalışmak için iyi bir yol bulmak gerekir. Bu, özellikle erken benimseyenler için maliyetlidir. Aynı zamanda bir tavuk ve yumurta problemidir: geniş bir kullanıcı tabanı olmadan kaliteli araçlar ve kütüphaneler olmayacaktır, ancak bunlar olmadan büyük bir kullanıcı tabanı olmayacaktır. Bu nedenle, yeni bir dilin mevcut dillere göre büyük bir avantajı olmalıdır, aksi takdirde şansı olmayacaktır.

  • Dillerdeki "son" yeni gelişmelerin çoğu, mevcut CPU gücü ile kullanıcının ihtiyaç duyduğu şey arasındaki boşluğu doldurmaktadır. Başka bir deyişle: hızda verimsiz olabilirler, ancak programcıda daha kolay olarak telafi edebilirler. Java, Python, Perl, Tcl gibi temelde bir tercüman tarafından yönetilen (belki bir derlemeden sonra) dillerin yükselişini düşünün ve dinamik bellek yönetimini yoğun bir şekilde kullanın. Ancak bu, a) daha fazla programlama çabası pahasına bile olsa, mevcut kaynaklardan en iyi şekilde yararlanmak ve b) kaynakların öngörülebilir kullanımı elde etmek istediğimiz, kaynak kısıtlamalı dünya ile iyi uyuşmuyor.

  • C ve C ++ (veya uygun bir alt küme) hala çok kullanılmayan öngörülebilir alan ve zaman gereksinimlerini karşılayabilecek ortak kullanımda olan (en iyi araçların, yeterli eğitimli programcıların ve kapsamlı kütüphanelerin mevcut olması yeterlidir) en üst düzey dillerdir. mevcut donanımda mümkün olandan. Tek rakip bence Ada, ama kötü bir başlangıçtan muzdaripti: ilk uygulamalar (algılandığı gibi mi?) Çok yavaş ve verimsizdi ve şimdi (iyi uygulamalar mevcut olsa bile) dil biraz geride kaldı özellikleri (C ++ ile karşılaştırıldığında). Şahsen bu üzücü olduğunu düşünüyorum, diğer şeyler eşittir Ada'da programlanmış bir uçakta C ya da C ++ 'da yapılmış bir uçaktan uçmayı tercih ederim.


+1 - güzel cevap. Ada ilginç bir dil gibi görünüyor, etrafında küçük mikrolar için Ada derleyicileri var mı?
Oli Glaser

GNAT var, GCC Ada derleyicisi. Ancak AFAIK, mikrolarda fazla kullanılmadı, bu yüzden çalıştırılmaya hazır bir şey bulmakta zorlanacaksınız.
Wouter van Ooijen

Evet, Wiki sayfasında GNAT'tan bahsetmiştim. Haklısınız, pek çevresinde küçük MICROS için değil 68k, x86, MIPS, vb (örneğin kritik önem taşıdığından şeyler için destek adil biraz (beklediğiniz gibi) var gibi görünüyor ediyoruz DDCI )
Oli Glaser

Aşağıda Deek'in de belirttiği gibi SPARK Ada da var. Zaman dedikleri zor şeylerden bazılarına baktığımda kontrol etmem gerekecek ...
Oli Glaser

2
Gnat formundaki Ada, Arduino'da görüldüğü gibi AVR mikroişlemcisinde iyi çalışıyor. Yaptığım en küçük Gnat yürütülebilir dosyası 65 bayttı. Kuşkusuz, tüm yaptığı bir LED yanıp sönüyordu, ancak eşdeğer Arduino çizimi 1K'nın üzerindeydi. Yürütülebilir dosyam 600 bayta ulaştığında, 2 kademeli motoru bağımsız olarak sürüyordu ... LED flaşörünün resmi olarak doğru olduğunu kanıtlamak istemiyorsanız SPARK'a ihtiyacınız yok!
Brian Drummond

9

8 ve 16 bit mikrodenetleyici tabanlı gömülü sistemlerle, bu çok mütevazı depolama sınırlamalarının sınırlı kaynaklarına sığabilecek yazılım geliştirmek daha kolaydır (belki de düşük uçlu 8 bit mikrodenetleyiciler için birkaç 100 bayt RAM (2-8 KiB ROM veya EPROM / Flash ile kod saklama için).

Bu durumlarda, C veya derleme gibi küçük diller en yaygın kullanılan geliştirme dilleri olma eğilimindedir. Çok kaba bir göreceli karşılaştırma olarak, eksiksiz bir montajcı ve C99 derleyicisi tek bir diskete sığabilirken, modern bir C ++ geliştirme sistemi (STL vb.) İçin birkaç MiB'ye ihtiyacınız vardır .

Daha yüksek uç (oldukça nadir 64-bit ile üst seviye 16 bit ve çoğunlukla 32 bit) mikro düzeyde ve bakarken DSP gömülü ortamlarda daha sonra kısıtlamalar zayıflatmak ve yazılım geliştirme geliştirme toplu oluşturuyor olabilir bu nedenle, C ++ gibi Nesne Tabanlı Programlama (OOP) dilleri ve daha yeni diller (Java, Perl, Ruby, Python) gibi daha gelişmiş diller de dahil olmak üzere en verimli geliştirme araçlarını kullanmak mantıklıdır.

Montaj ve C'de ne kadar bellek kullanıldığını tahmin etmek mümkündür, böylece alan kısıtlı bir tasarım mümkündür, ancak şablonlar, istisna işleme ve çalışma zamanı bağlama gibi gelişmiş özellikler, gerekli bellek ayak izini tam olarak bilmeyi imkansız hale getirir. önceden standart bir C ++ programı için. Üzerinde yorum yapmak için C ++ alt kümesi olan MISRA C ++ hakkında yeterli bilmiyorum .

Bayt kodunu çalıştıran sanal makinelere (Java, Perl, Python) dayanan diller, gömülü geliştiricinin deneyiminde daha az olgunlaşır ve bu diller programcıyı belirli bir donanımdan yalıtmak için tasarlandığından, vicdanlı olmayı da zorlaştırır bu tür gömülü donanım sisteminin sınırlamaları ve kısıtlamaları. Bunlar, GiB RAM olmasa bile MiB ile hızlı 32 bit işlemcilerde (örn. ARMv7) daha az sorun yaratır.

Fark ettiğim tüm BASIC uygulamaları, dil özelliklerinde oldukça basit, 1960'lardan itibaren Dartmouth BASIC'in mirasına büyük ölçüde sadık kalıyor. Bu, dilin karmaşık çalışma zamanı kitaplıklarına veya özel durum işleme özelliğine sahip olmadığı ve bir yorumlayıcı veya derleyicinin yazılmasının oldukça basit olduğu ve dosya boyutunda da küçük olduğu anlamına gelir. Çoğu mikrodenetleyicide en az bir BASIC derleyicisi vardır.

Umarım geniş vuruşlarda C ve montajın daha küçük veya daha eski gömülü sistemlerde kullanılmasının nedenlerini ve yeni orta ve üst seviye gömülü sistemlerin sınırlamalarını geleneksel masaüstü kişisel bilgisayarından biraz farklı bulmanızı sağlar.


5

Cevapların çoğu zaten tarihsel nedenleri belirtti (iyi bilinen, herkes bunu kullanıyor, alışkanlıkları değiştirmek kolay olmayacaktı, vb.). Onlarla aynı fikirde olurken, başka bir önemli neden olduğunu da aklımızda tutmalıyız.

O var değil (QWERTY klavye gibi) "C geçersiz veya süresi geçmiş bir seçimdir ama biz hala alışkanlık dışarı kullanmak" söyledi.

C, özellikle zaman açısından kritik uygulamalarda gömülü geliştirme için tek başına çok iyi bir seçimdir. Neden?

  • gerçek zamanlı programları uygulamak için kolayca kullanılabilecek kadar düşük düzeydedir. Nanosaniye cinsinden zamanı ölçmeniz gerekiyorsa, her 5 mikrosaniyede bir kesintiyi yakalamanız veya tam olarak 64 bayt toplam RAM kullanmanız gerekiyorsa, o zaman çok yüksek seviyeli bir dil ile bunu çözmek çoğu zaman imkansız veya çok zor olacaktır. . C, donanım üzerinde üst düzey dillerden çok daha iyi kontrol sağlar , bu, gömülü ve PC için geliştirme arasındaki en önemli farklardan biridir.

  • Montaj'a kıyasla hızlı ve kolay kodlanacak kadar yüksek seviyededir.

Bu nedenle, C, Meclis'in hız ve doğrudan donanım erişimi ile üst düzey dillerin kolay okunması ve anlaşılması arasındaki en iyi (veya en iyilerinden) uzlaşmadır.


1
C lehine önemli bir yönü olduğunu düşünüyorum ki belirli bir platform için kodu optimize etmek için izin verirken bu kod (belki de verimli değil) diğerleri üzerinde çalıştırmak için izin verir. PIC gibi bir şeyde, birçok C talimatı tahmin edilebilir bir şekilde makine talimatlarına dönüşecektir; benzeri bir döngü unsigned char i=63,j=128; do {something;} while(--j); while(--i);kadar okunabilir unsigned int i=16000; do {something;} while(--i);olmayacak, ancak PIC'de daha hızlı çalışacak ve daha verimli olacaktır. Kod ARM'ye taşındıysa, ikinci yaklaşım daha verimli olurdu, ancak birincisi hala işe yarayacaktır.
supercat

4

Düzenli programlamada (en çok kullanılan) dillerin (gerçekten) değişmemesinin tam olarak aynı nedeni:

  1. Büyük miktarda mevcut kod (kütüphaneler / mevcut uygulamalar)
  2. Bu dillerle çalışabilen büyük araç seti (IDE'ler, simülatörler, ...)

4

Gömülü dünyada, yazılım güncellemeleri sağlamak çok daha zor (veya imkansız) olabilir ve bu nedenle doğruluğu garanti etmek daha önemlidir. Ne yazık ki C bu konuda çok az yardım sağlar ve programcının hızlı ve gevşek oynamasına izin verir.

Gömülü sistemler için C'yi kullanmak bana acı veriyor ve en azından const, referanslar, stringer yazarak vb. Gibi kısıtlamalar şeklinde sağladığı birçok fayda için C ++ 'a kadar hareket edebilsem.

Sanırım cevap C ile sıkışıp kalmamızdır çünkü değişim ticari olarak geçerli değildir. Herkes C'yi bilir, bunun için bir sürü derleyici, onun için kütüphaneler ve onu üretecek araçlar vardır. Yeni bir dil ile sıfırdan başlıyoruz.

Sanırım insanlar hala PHP kullanıyor .

PHP double claw hammer.


Soruyu tartışmak isterseniz yorum veya meta kullanın, iyi bir soru için kullanıcıyı arkaya patlatmak istiyorsanız, oy verin veya yorum yapın.
Kortuk

Her zaman Pascal kullanabilirsiniz - aradığınız ek kısıtlamalar var gibi görünüyor :-). Ya da bir çeşit Super-Lint.
Russell McMahon

2
C'nin çok önemli bir nedeni, temel bir C derleyicisini yazmanın bir C ++ derleyicisinden daha kolay olmasıdır. Daha önemli görevler beni çekmeden önce bir süre çalıştım. Eğlenceli şeyler! C ++ derleyicisi mi yazıyorsunuz? Ugh. Yine de kullanıcı olarak C ++ tercih ederim.
darron

1
@RussellMcMahon - Pascal'ı kullanamıyorum, çünkü kullandığım MCU'lar için Pascal derleyicisi yok.
Rocketmagnet

@darron - Bu çok iyi bir nokta. Ancak, gpp gibi çok iyi açık kaynaklı C ++ derleyicileri vardır. Bunun için bir arka uç yazmaları gerekecekti.
Rocketmagnet

4

Burada hiç kimse SPARK Ada'yı duymadı mı?

Bu, Ada dilinin ve gömülü sistemler için aviyonik ve tıbbi ekipman gibi diğer güvenlik açısından kritik uygulamalar için ilgili geliştirme araçlarının "küçük" bir sürümüdür.

Çalışmalar, daha güvenilir SPARK kodlaması ile C / C ++ ile karşılaştırıldığında işlem hızında sadece% 5-10 kayıp olduğunu göstermiştir.

Gömülü sistemlerde C'nin çoğalmasının ekonomik nedenlerden kaynaklandığını düşünüyorum:

  • Zaten orada ve çoğu uygulama için genellikle uygulanabilir - ve hacim bazında çoğu uygulama kritik değildir, çamaşır makinesi taşarsa kimse ölmeyecek - neden değişsin?

  • SPARK araç seti kendi başına ve eğitim personelinin kullanması için ek bir masraf olacaktır.

  • SPARK'ın (veya diğer C olmayan dillerin) gömülü denetleyiciye / yönetim sistemine sağladığı ek faydalar, tüketicinin gözünde ürün fiyatında gerekli primi haklı çıkarmak için yeterli olmayabilir - özellikle de görünüşte "iyi" rakip markalar sattıklarında daha düşük bir fiyat için.

  • AdaCore şirketi kitle piyasası uygulamalarına fazla derin girmemeye dikkat ediyor, çünkü bunlar kaçınılmaz olarak çekirdek olmayan sorunlarla başa çıkmak için teknik destek personelinde büyük bir artış talep edecektir. AdaCore üst düzey bir uzmanlık şirketidir, bu şekilde gurur duymaktadır ve ürün ve hizmetlerini yüksek teknoloji şirketlerinde sunmaktadır. Bir dilin, ana paydaşları gerçekten istemediği sürece yeni pazarlara girmesi olağandışıdır.

Yani, @ Wouter, Ada gömülü kodunu istemek için gökte ölmekten endişelenmenize gerek yok!

Zaten yıllardır uçak sistemlerinde. Aynı şekilde kalp piliniz için.

Ancak bulaşık makinesi, bina hizmetleri kontrol sistemi, laboratuvar fırın denetleyicisi ve diğer katı düzenlemelere tabi olmayan diğer alanlar için - ekonomik olarak ekstra mil kat etmeye değer mi?


İlginç, teşekkürler - SPARK'ı duymadım, kontrol edeceğim.
Oli Glaser

Bazı çalışmalar C'deki mevcut bir uygulamaya göre bir hızlanma gösteriyor - "Ironsides" DNS sunucusuna bakın ...
Brian Drummond

3

C'nin popülaritesinin temel sebebinin ilk önce C'nin popüler olması ve birçok insanın bunu bilmesi ve ikincisi: Java, C # ve hatta C ++ gibi birçok popüler dilin hiçbiri gömülü çalışma için uygun olmamasıdır. Temelde bahsettiğim diğer 3 dil, programla birlikte deterministik olmayan bir şekilde yürütme, onlarla dinamik bellek getiren nesneler, büyük bellek gereksinimleri getiren dinamik belleğe çok fazla güveniyor (çünkü OO'nun daha önemli taraflarından biri daha fazla sayıda sınıf), tam zamanında derlemenin artan popülaritesi (ve birçok gömülü platform kendi C kodlarını bile derleyemez) ...

Java veya C # ile birlikte gelen kütüphanelerin çoğunun çok sayıda gömülü proje için işe yaramadığı gerçeği de var.

Öte yandan, Pascal veya Basic gibi daha eski dillerimiz var. Benim açımdan, onlar kadar popüler değiller çünkü C kendini "endüstri standardı" dili yaptı ve çok sayıda programcı ve mühendis bugün C öğreniyor. Bazı okullarda Pascal veya Basic öğrenilmemiştir. Günümüzde popüler olan birçok dilde C benzeri sözdizimi vardır ve Pascal'ı kullanmak bir C programcısına garip gelecektir.

FORTRAN'a gelince, sanırım niş bir alana girdi ve çoğunlukla kullanımı için uygun bir ekosistemin bulunduğu alanlarda çalışan mühendisler ve bilim adamları tarafından kullanılıyor. Herhangi bir neden göremiyorum (Pascal ve Basic için bahsettiğimler dışında) gömülü sistemlerde kullanılmıyor.

Bu cevapta çoğunlukla daha küçük sistemlere odaklandığımı unutmayın. GNU / Linux veya başka bir Unix türevi gibi daha karmaşık işletim sistemlerini kullanan ve bunları programlamak için birçok popualr dili kullanılabilir.


1
C popüler çünkü C popüler mi? :-)
stevenvh

2
@stevenvh Evet, bu doğru. Bir çeşit olumlu geri bildirim döngüsü. Ne kadar popüler olursa, o kadar popüler olur.
AndrejaKo

3

C çok basit bir dildir ve birden fazla vesileyle fantezi montaj dili olarak adlandırılmıştır . C yapıları makine düzeyinde yapılara oldukça doğrudan eşleştiğinden, montaj kodunun üzerinde sağlayabileceğiniz minimum soyutlama miktarı neredeyse hemen hemen budur.

Bu ve diğer birkaç nedenden dolayı, yeni bir çip üzerine bir C derleyicisi uygulamak çok kolaydır. İşin çoğu zaten yapıldı, nispeten az karmaşıklık veya yanlış giden şeyler var ve düşük seviyeli kontrol, donanımınızdaki her türlü sorunu kolayca halletmenizi sağlar.

C ++, C'nin üzerine bir kaynak kodu çeviri katmanı olarak (aslında başlangıçta uygulanmıştır) uygulanabilir, yani C ++ derleyicinizle C ++ (veya en azından bazı sürümlerini) ücretsiz olarak alabilirsiniz.

C ve C ++ ile, yeni çipiniz için ihtiyacınız olan diğer her şeyi bir bootstrap ile başlamanız için mantıklı bir yer haline getirirsiniz.


3

Diğerlerinin bahsetmediği bazı nedenler:

  • Sorun alanı: C küçük ve basit sistemler için uygundur. Yaptığınız tek şey harici sinyallere tepki veriyorsa ve birkaç sayıyı etrafa itiyorsanız, C oldukça iyi çalışır (karmaşık veri yapıları, malloc yok, karmaşık hata işleme yok).

  • Üretim hacmi: Büyük üretim çalışmalarınız varsa, her donanım biriminden tasarruf etmek ve programcılara daha fazla harcama yapmak ekonomik olarak mantıklıdır çünkü programlama bir defalık bir maliyettir.



1

Aslında, küçük gömülü sistemler için C, C ++ 'dan çok daha popülerdir. Bunun nedeni diğer dilleri kullanmamanın nedenidir. C ++ 'dan farklı kılan özelliklerin çoğunu vermezseniz, C ++ bir çalışma zamanı gerektirir.

Montaj dışında, yerel kodla derlenen ve çalışma zamanının isteğe bağlı olduğu bildiğim tek dil C'dir . Bu nedenle, kısıtlı bir ortamda (montaj kullanıyorsanız hariç) en küçük kaplama alanı ve en hızlı yürütme süresi olacağı garanti edilir.

Öte yandan, orta ve büyük gömülü sistemlerde (daha fazla bellek ve saat, daha büyük kelime boyutu anlamına gelir) C (veya C ++) çok yaygın olduğunu söyleyemem. Python, Forth ... hatta Java'yı destekleyen sistemler gördüm.

Ancak elbette, yukarıda bahsettiğim aynı nedenlerle, neredeyse her zaman C / C ++ kullanma seçeneğiniz var. Ve bu seçeneğe sahip olmak ve küçük gömülü için C ile zaten rahat olan biri olarak, neden başka bir dil seçesiniz?


4
C ++ yükü bir sürü oluşturabilir ama MSP430 için kullandığım tam uyumlu C ++ derleyici bir çalışma zamanı gerektirmedi, C ++ yerel kod derleme yaptı. Özür dilerim, başkalarına bir kötülük olduğunu söylemek seni aşağıladı. Yanlış yaptığım (zor olacak, projelerim için derlenmiş C ++ derleme listesini okudum, verimli bir şekilde derlendiğinden emin olarak) ikna eden referanslar sağlayarak aşağı oyu kaldırabilirsiniz veya kaldırılacak cevabınızı silebilirsiniz itibarınız üzerindeki etki (bu noktada +8 net temsilci almanıza rağmen)
Kortuk

3
Kortuk'a tamamen katılıyorum. C ++ 'ın bazı bölümleri kapsamlı çalışma zamanı desteği gerektirir, ancak olmayan kısım hala çok daha iyi bir C (ve tamamen OO). Bu alt kümeye kısıtlama bazı derleyici ve bağlayıcı anahtarlar tarafından kolayca uygulanır. Bazı bölümlerde (örneğin korkunç printf) C ++ en azından çok daha az çalışma zamanı desteği gerektirecek dil potansiyeline sahiptir (yalnızca std :: cout küçük sistemler düşünülerek uygulanmışsa ...)
Wouter van Ooijen

1
@Kortuk, orada açık olmadığım için özür dilerim, ama "C'nin tek dildir ..." dediğimde C ++ 'nın her ikisine de sahip olmadığı anlamına gelmedi, C'nin bu ikisinin bir kombinasyonuna sahip olduğu anlamına geliyordum ve C ++ bunlardan birine sahiptir. Vurgu, çalışma zamanı kısmındaydı. Ayrıca bir çalışma zamanı olmadan C ++ kullanmanın tamamen imkansız olduğunu söylemiyorum, ama oldukça sıradışı. Örneğin, bir çalışma zamanı olmadan istisna işleme ve RTTI gibi şeylere nasıl sahip olabileceğinizi göremiyorum ve bunlar oldukça önemli özellikler. Fakat bunu ifade etme şeklim olası yanlış anlamalara yol açıyorsa özür dilerim.
fceconel

@fceconel, hiçbir zaman çalışma ortamı ile C ++ kullanmadım ve burada gömülü sistemleri tartışıyoruz, mikrodenetleyicilerim üzerinde hiç çalışma zamanı kullanmadım. Bu soru biraz farklı, o zaman okumuş olabilirsiniz, neden C / C ++ 'ın tek yaygın seçenek olduğunu soruyor, neden C ++ yerine C değil? Kabul edeceğim, cout kadar basit bir şeyi mikroda asla olmayacak şekilde kullanmak, birkaç ücretsiz iğnem var, ekran değil.
Kortuk
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.