Я дивлюся на одну плату і бачу деякі пристрої для поверхневого кріплення, деякі резистори та конденсатори та світлодіоди. Чи означає це, що оскільки одна з цих плат - це відеокарта, усі плати з резисторами та конденсаторами та декількома шарами та слідами - це всі відеокарти? Ні.
Ось ще один приклад: ця веб-сторінка використовує англійський алфавіт та англійські слова. Так робить веб-сайт Нью-Йорк Таймс, чи це робить цей веб-сайт часом Нью-Йорк? Ні, вони просто поділяють один і той же алфавіт і мову, але в іншому випадку абсолютно різні.
C - мова програмування загального призначення, яка абстрагує набір інструкцій під ним. Може використовуватися для чистого металу, може використовуватися для створення різних і несумісних між собою операційних систем, може використовуватися для створення відеоігор тощо. Всі вони використовують одну і ту ж основну мову С, деякі загальні функції С і конструкції, а також створені ними функціональні виклики, характерні для цільової програми. Для кожної з тих платформ, про яких ви згадуєте, або інших, може бути набір функцій, які хтось вирішив створити. Так само, як небагатьох людей, включаючи мене, я дав вам таку ж відповідь, але написав її по-іншому. Візьміть 100 програмістів і ізолюйте їх один від одного і дайте їм завдання програмування для вирішення певної проблеми, не обмежуючи повністю їхньої свободи програмування, і ви отримаєте десь від 1 до 100 різних, несумісних між собою рішень, швидше за все, не 1, а декількох загальних тем, залежно від їхньої підготовки та досвіду, а потім імена змінних і назви функцій, які як набір, ймовірно, унікальні для кожної людини. Візьміть ті самі дошки, про які ви вже говорите, і ви побачите, що я, безумовно, маю власний код C, який є несумісним (з функціями arduino), щоб працювати на них, як і на багатьох інших, а також несумісний з іншими платформами. У цьому полягає краса вбудованого програмного забезпечення з голого металу, ви ні в якому разі не обмежуєтесь, вам не доведеться жити в рамках стандартних викликів бібліотеки операційних систем або обмеженого набору правил тощо. Повна свобода. ймовірно, не 1, а кілька загальних тем, залежно від їхньої підготовки та досвіду, а потім імена змінних та назви функцій, які як набір, ймовірно, унікальні для кожної людини. Візьміть ті самі дошки, про які ви вже говорите, і ви побачите, що я, безумовно, маю власний код C, який є несумісним (з функціями arduino), щоб працювати на них, як і на багатьох інших, а також несумісний з іншими платформами. У цьому полягає краса вбудованого програмного забезпечення з голого металу, ви ні в якому разі не обмежуєтесь, вам не доведеться жити в рамках стандартних викликів бібліотеки операційних систем або обмеженого набору правил тощо. Повна свобода. ймовірно, не 1, а кілька загальних тем, залежно від їхньої підготовки та досвіду, а потім імена змінних та назви функцій, які як набір, ймовірно, унікальні для кожної людини. Візьміть ті самі дошки, про які ви вже говорите, і ви побачите, що я, безумовно, маю власний код C, який є несумісним (з функціями arduino), щоб працювати на них, як і на багатьох інших, а також несумісний з іншими платформами. У цьому полягає краса вбудованого програмного забезпечення з голого металу, ви ні в якому разі не обмежуєтесь, вам не доведеться жити в рамках стандартних викликів бібліотеки операційних систем або обмеженого набору правил тощо. Повна свобода. Візьміть ті самі дошки, про які ви вже говорите, і ви побачите, що я, безумовно, маю власний код C, який є несумісним (з функціями arduino), щоб працювати на них, як і на багатьох інших, а також несумісний з іншими платформами. У цьому полягає краса вбудованого програмного забезпечення з голого металу, ви ні в якому разі не обмежуєтесь, вам не доведеться жити в рамках стандартних викликів бібліотеки операційних систем або обмеженого набору правил тощо. Повна свобода. Візьміть ті самі дошки, про які ви вже говорите, і ви побачите, що я, безумовно, маю власний код C, який є несумісним (з функціями arduino), щоб працювати на них, як і на багатьох інших, а також несумісний з іншими платформами. У цьому полягає краса вбудованого програмного забезпечення з голого металу, ви ні в якому разі не обмежуєтесь, вам не доведеться жити в рамках стандартних викликів бібліотеки операційних систем або обмеженого набору правил тощо. Повна свобода.
Ви можете вибрати, і великий відсоток людей, щоб грати в когось іншу пісочницю, а не створювати свою власну, тобто використовувати ардуїно-гуї та їх бібліотеки С.
Ви можете взяти один і той самий ПК та запустити різні версії windows it, linux, bsd та список білизни інших операційних систем, які на певному рівні використовують C, але виклики функцій яких несумісні між собою. Той самий апаратний та несумісний C, який поширюється на різні апаратні засоби, однакова мова, може мати сумісний або несумісний код. Мова жодним чином не робить їх сумісними.
C використовується на цих вбудованих платформах, тому що це звичайна практика, немає іншої мови, яка може замінити C для цього. Перший крок для нового процесора - це збірка, звичайно, потім майже завжди є С наступним, потім, можливо, інші, якщо він достатньо потужний для роботи операційної системи (Linux, bsd тощо). C був винайдений і сподівався вирішити проблему переносу коду на платформи на той час, і поки у вас є операційна система, це компілятор, сумісний з C, що робить код, який запускається в операційній системі, буде робити стандартний файл C операції та printf тощо. Але голий метал - це вже інша історія, немає операційної системи, часто немає поняття файлової системи та дисплея, але, як правило, існує компілятор C, який у своїх коренях перетворює C на цільову мову монтажу.