Что не зависит от платформы? Независима ли платформа c или c++, если не объяснить на примере?

Четыре месяца назад я присоединился к Altran в качестве инженера-программиста. Первоначально я прошел обучение в Наланде, после завершения обучения, наконец, получил назначение на проект.
Однажды нашему старшему техническому руководителю г-ну Химаншу Ранджану нужно было пройти обучение работе с питоном. Он начал свое обучение с вопроса. Что не зависит от платформы? Независима ли платформа c или c++, если не объяснить на примере?
Итак, насколько мне известно, указано: Программное обеспечение, которое может работать на различных аппаратных платформах или программных архитектурах. Программное обеспечение, не зависящее от платформы, можно использовать во многих различных средах, что требует меньшего планирования и перевода в рамках предприятия. Например, язык программирования Java был разработан для работы на нескольких типах оборудования и в нескольких операционных системах. Если независимость Java от платформы станет реальностью, организации с несколькими типами компьютеров смогут один раз написать специализированное приложение, которое будет использоваться практически всеми, вместо того, чтобы писать, распространять и поддерживать несколько версий одной и той же программы.
Но с его стороны не было никакого сигнала удовлетворения, даже мои коллеги объяснили лучше. Теперь у него есть что-то новое для нас, можете ли вы привести пример, который имеет разный вывод на разных платформах? На этот раз я был в Google, вот некоторые вещи, которые я объяснил для другой платформы.
В случае C или C++ (язык, который не является независимым от платформы), компилятор создает файл .exe, который зависит от ОС. Когда мы пытаемся запустить этот файл .exe в другой ОС, он не запускается, поскольку зависит от ОС и, следовательно, несовместим с другой ОС.

если вы скомпилируете и создадите код программы C в Windows, скопируйте этот файл .exe на компьютер с Linux, этот файл .exe не будет там запускаться. Точно так же, если вы скомпилируете тот же программный код в Linux, вы получите файл .out, который не будет работать в Windows, если его скопировать туда напрямую. У меня нет ни примера для объяснения, ни кода, чтобы произвести на него впечатление. У тебя есть? Позвольте мне взломать это для вас, поскольку мы знаем, что Java не зависит от платформы, потому что она преобразует код в байтовый код. Опять же, вы можете задать #include Int main(){ int i=10; я++; printf("%d",&i); } Будет ли этот код выводить разные данные на разных платформах? Ответ - нет! Он будет печатать 11 на любой платформе, так как мы можем сказать, что c не зависит от платформы. Итак, вот причина и пример. В java, python или любом другом независимом от платформы языке размер целого числа фиксирован. Давайте поговорим о java, в java размер целого числа составляет 4 байта. В C целочисленный размер зависит от процессора. Размер хранения данных типа int составляет 2, 4 или 8 байт. Он зависит от используемого процессора. Если мы используем 16-битный процессор, для типа данных int будет выделено 2 байта (16 бит) памяти. Аналогично, для типа данных int выделяется 4 байта (32 бита) памяти для 32-битного процессора и 8 байт (64 бита) памяти для 64-битного процессора. int (2 байта) может хранить значения от -32 768 до +32 767 int (4 байта) может хранить значения от -2 147 483 648 до +2 147 483 647. Если вы хотите использовать целочисленное значение, превышающее указанный выше предел, вы можете выбрать «long int» и «long long int», для которых ограничения очень высоки.

Разберем на примере #include Int main(){ int i=10; if(sizeof(i)==2) print("Да); иначе напечатайте("Нет") } . 2 запустите любой файл заголовка graphics.h в программе windows in c, затем запустите эту скомпилированную программу в Linux, файл заголовка не будет работать, потому что graphics.h не определен в Linux. в языке C таких сценариев больше. Есть некоторые минимальные нет. требований к оборудованию для запуска программы C, в то время как это не является обязательным в java. Этот код имеет разные выходные данные на разных платформах, для 8/16 бит будет печатать Да, а для 32 или 64 бит будет печатать Нет. В java размер целого числа составляет 4 байта, если процессор 16-битный компилятор java займет два регистра для хранения целого числа . Вот некоторые комментарии сэра Химаншу: мы столкнулись со многими проблемами платформы, работая в Motorola над встраиваемыми устройствами. Когда мы переносили код на несколько устройств, было замечено много проблем с сетью. Затем мы увидели разницу, эти платформы использовали разные процессоры от многих поставщиков, таких как QUALCOMM, Free Scale Semiconductor и т. д. Некоторые процессоры поддерживали обратный порядок байтов, а некоторые поддерживали обратный порядок байтов. Другая платформа с разными размерами целых и длинных чисел, которые не были совместимы.