Free-standing
- C++ kursu
- Uzman
- Ders 33/47
- 5 dk
Free-standing C++ ve std lib kısıtlarını öğrenirsin.
Free-standing
C++ standartları iki uygulama türü tanımlar: hosted (işletim sistemi var, std::cout, std::vector gibi araçlar kullanılabilir) ve freestanding (işletim sistemi yok, yalnızca minimum başlıklar).
Freestanding uygulamada main zorunlu değildir; giriş noktası donanıma bağlıdır (örneğin Reset_Handler). Kullanılabilir başlıklar sınırlıdır: <cstdint>, <cstddef>, <new>, <type_traits>. Bu başlıklara freestanding headers denir; işletim sistemi gerektirmezler.
Freestanding başlıklar
Freestanding başlıklar şunlardır: <cstdint> (sabit genişlikli tam sayılar), <cstddef> (std::size_t, nullptr_t), <limits>, <type_traits>, <new>. Bunlar işletim sistemi çağrısı yapmaz.
Buna karşılık <iostream>, <vector>, <string> hosted başlıklardır; dinamik bellek ve işletim sistemi ister. Gömülü sistemlerde bu başlıklardan kaçınılır; yerine std::uint32_t gibi freestanding türleri kullanılır. Bu, programın her donanımda çalışmasını sağlar.
Uygulama Freestanding türlerle add yaz
std::uint32_t add(std::uint32_t a, std::uint32_t b) yaz; gövdesi return a + b;. main içinde std::cout << add(3, 4); yaz.
Başlangıç kodu
#include <iostream>
#include <cstdint>
// add fonksiyonunu buraya tanımla
int main() {
// add'i çağır ve yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <cstdint>
std::uint32_t add(std::uint32_t a, std::uint32_t b) {
return a + b;
}
int main() {
std::cout << add(3, 4);
return 0;
}Beklenen çıktı
7
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Başlığı türüne eşle
| Kavram | Anlamı |
|---|---|
freestanding |
İşletim sistemi yok |
hosted |
İşletim sistemi var |
<cstdint> |
Freestanding başlık |
<iostream> |
Hosted başlık |
2 uint32_t türünü tamamla
std::_____t counter = 0;
std::uint32_t counter = 0;
Açıklama: std::uint32_t 32 bitlik işaretsiz tam sayıdır.
3 Hangi başlık freestanding'tir?
// #include <...>- <cstdint> Doğru cevap
- <iostream>
- <vector>
- <string>
Açıklama: <cstdint> freestanding başlıktır; işletim sistemi gerektirmez.