КАРТА САЙТА
Sibnet.ru
Sibnet.ru

Sibnet.ru — это информационно-развлекательный интернет-проект, ориентированный на широкий круг Сибирского региона.
По данным Rambler Top100, Sibnet.ru является самым популярным порталом в Сибири.

Контакты:
АО "Ринет"
ОГРН 1025402475856
г. Новосибирск, ул. Якушева, д. 37, 3 этаж
отдел рекламы:
(383) 347-10-50, 347-06-78, 347-22-11, 347-03-97

Редакция: (383) 347-86-84

Техподдержка:
help.sibnet.ru
Авторизируйтесь,
чтобы продолжить
Некоторые функции доступны только зарегистрированным пользователям
Неправильный логин или пароль

Внимание! Теперь для входа на форум необходимо вводить единый пароль регистрации сервисов sibnet.ru!

Здравствуйте, гость ( Вход | Регистрация )



58 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Песочница, Для совсем простых вопросов :)
Krawler
сообщение 7.2.2009, 15:10
Сообщение #1 (закреплено)


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 305
Регистрация: 24.5.2008
Из: А адресок не надо????
Пользователь №: 34 141



Репутация:   18  


Вы настолько неопытны, что не можете правильно задать вопрос? Значит вам сюда!
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Emerald_ILYA
сообщение 8.2.2009, 13:14
Сообщение #2


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340



Репутация:   123  


Цитата(mephisto @ 2.2.2009, 22:02) *

Как было замечено выше, машинные коды, но проблема в том, что у каждой машины коды свои. Этот факт к стати сыграл не маловажную роль в распространении UNIX, который был написан на Си, а не на ассемблере, как остальные ОС того времени. Для того, чтобы портировать UNIX достаточно было написать компилятор Си, после чего ОС компилировалась и работала на новой машине.

Т.е. получается программа написанная на ассемблер под железо для Windows не способна работать на железе для макинтоша? А программа написаная на С будет работать и там и там, лишь бы был компилятор?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 8.2.2009, 13:42
Сообщение #3


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(Emerald_ILYA @ 8.2.2009, 12:14) *

Т.е. получается программа написанная на ассемблер под железо для Windows не способна работать на железе для макинтоша? А программа написаная на С будет работать и там и там, лишь бы был компилятор?

Давай я немного перефразирую, программа, написанная на ассемблере с использованием одного набора команд не будет работать на процессоре с другим набором. Даже наборы команд x86 процессоров могут довольно сильно различаются.

Программа на Си (впрочем, не только на Си smile.gif) решена этого недостатка, оптимизация кода под конкретную архитектуру происходит на этапе компиляции.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Emerald_ILYA
сообщение 8.2.2009, 14:04
Сообщение #4


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340



Репутация:   123  


Цитата(mephisto @ 8.2.2009, 12:42) *

Программа на Си (впрочем, не только на Си smile.gif) решена этого недостатка, оптимизация кода под конкретную архитектуру происходит на этапе компиляции.

т.е. язык С по сути тот же ассемблер, только без этого гемороя:
» Спойлер (нажмите, чтобы прочесть) «

А чем тогда он отличается от ассемблера? Такая неопределённость и вариативность для ассемблера просто ставит в тупик huh.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Krawler
сообщение 8.2.2009, 14:22
Сообщение #5


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 305
Регистрация: 24.5.2008
Из: А адресок не надо????
Пользователь №: 34 141



Репутация:   18  


Цитата(Emerald_ILYA @ 8.2.2009, 13:14) *

Т.е. получается программа написанная на ассемблер под железо для Windows не способна работать на железе для макинтоша? А программа написаная на С будет работать и там и там, лишь бы был компилятор?

Ассемблер - это язык процессора, а не ОС... Компилятор может устранить независимость только от железа, но не от ОС... Поэтому если ты портируешь Windows-приложение (написанное с использованием функций этой ОС) на Линукс, то надо системные функции Windows заменять вручную
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Emerald_ILYA
сообщение 8.2.2009, 14:27
Сообщение #6


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340



Репутация:   123  


Цитата(Krawler @ 8.2.2009, 13:22) *

Ассемблер - это язык процессора, а не ОС... Компилятор может устранить независимость только от железа, но не от ОС... Поэтому если ты портируешь Windows-приложение (написанное с использованием функций этой ОС) на Линукс, то надо системные функции Windows заменять вручную

Тема для совсем...(гм...), поэтому начинаю тупить не стесняясь biggrin.gif
И так, если я написал программу в ассебмлере, которая играет мелодию на динамике ПК, то эта программа будет работать под всем железом или только под тем, под которым я её написал? Будет ли это "ПО" работать под разными ОS?

Сообщение отредактировал Emerald_ILYA - 8.2.2009, 14:28
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Krawler
сообщение 8.2.2009, 14:39
Сообщение #7


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 305
Регистрация: 24.5.2008
Из: А адресок не надо????
Пользователь №: 34 141



Репутация:   18  


Цитата(Emerald_ILYA @ 8.2.2009, 14:27) *

Тема для совсем...(гм...), поэтому начинаю тупить не стесняясь biggrin.gif
И так, если я написал программу в ассебмлере, которая играет мелодию на динамике ПК, то эта программа будет работать под всем железом или только под тем, под которым я её написал? Будет ли это "ПО" работать под разными ОS?

Читай мой пост внимательнее:
Цитата
Компилятор может устранить независимость только от железа, но не от ОС

Цитата
Поэтому если ты портируешь Windows-приложение (написанное с использованием функций этой ОС) на Линукс, то надо системные функции Windows заменять вручную

Иначе работать не будет
Да.... Забыл, Если ты ее пишешь в ассемблере, то она работает только под тем железом для которого ты ее писал

Сообщение отредактировал Krawler - 8.2.2009, 14:42
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 8.2.2009, 14:55
Сообщение #8


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(Emerald_ILYA @ 8.2.2009, 13:27) *

И так, если я написал программу в ассебмлере, которая играет мелодию на динамике ПК, то эта программа будет работать под всем железом или только под тем, под которым я её написал? Будет ли это "ПО" работать под разными ОS?

Если ты используешь некоторые специфичные инструкции AMD, например 3dnow, на машине с пентиумом программа не заработает. Переносимость на уровне ОС зависит от используемых API. Если нужно добиться переносимости на уровне ОС, следует использовать библиотеки абстрагирующие программу от API ОС, например Qt, правда с программами, которые работают с железом будут определённые сложности.

Цитата(Emerald_ILYA @ 8.2.2009, 13:04) *

т.е. язык С по сути тот же ассемблер, только без этого гемороя:
» Спойлер (нажмите, чтобы прочесть) «

А чем тогда он отличается от ассемблера? Такая неопределённость и вариативность для ассемблера просто ставит в тупик huh.gif

Ты путаешь язык и пакеты для работы с ним. Есть только один ассемблер для одного процессора, а вот программных пакетов для работы с ним может быть много.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Emerald_ILYA
сообщение 8.2.2009, 15:08
Сообщение #9


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340



Репутация:   123  


Цитата(Krawler @ 8.2.2009, 13:39) *

Читай мой пост внимательнее:
Цитата
Компилятор может устранить независимость только от железа, но не от ОС

Т.е. мне необходимо окомпелировать программу в Windows и Linux отдельно, что бы работала и там и там, верно ?
Цитата(Krawler @ 8.2.2009, 13:39) *

Цитата
Поэтому если ты портируешь Windows-приложение (написанное с использованием функций этой ОС) на Линукс, то надо системные функции Windows заменять вручную

Иначе работать не будет

Я же написал, про динамик, он же вроде как не зависит от функций винды.
Цитата(Krawler @ 8.2.2009, 13:39) *

Да.... Забыл, Если ты ее пишешь в ассемблере, то она работает только под тем железом для которого ты ее писал

А если я пишу на С, то ПО будет работать под любым железом?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Krawler
сообщение 8.2.2009, 15:51
Сообщение #10


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 305
Регистрация: 24.5.2008
Из: А адресок не надо????
Пользователь №: 34 141



Репутация:   18  


Цитата(Emerald_ILYA @ 8.2.2009, 15:08) *

Т.е. мне необходимо окомпелировать программу в Windows и Linux отдельно, что бы работала и там и там, верно ?

Да.

Цитата
Я же написал, про динамик, он же вроде как не зависит от функций винды
А если я пишу на С, то ПО будет работать под любым железом?

Да, именно так. И не только на С, но и на любом другом языке высокого уровня

Сообщение отредактировал Krawler - 8.2.2009, 15:52
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Emerald_ILYA
сообщение 8.2.2009, 17:24
Сообщение #11


Болтун
Group Icon


Группа: Sibnet-club
Сообщений: 566
Регистрация: 27.1.2008
Пользователь №: 18 340



Репутация:   123  


Цитата(Krawler @ 8.2.2009, 14:51) *

Да, именно так. И не только на С, но и на любом другом языке высокого уровня

неее.... я имею ввиду, если я буду использовать С как ассемблер, т.е. писать на С как на языке процессора.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 8.2.2009, 18:07
Сообщение #12


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(Emerald_ILYA @ 8.2.2009, 16:24) *

неее.... я имею ввиду, если я буду использовать С как ассемблер, т.е. писать на С как на языке процессора.

Теперь то же самое, только осмысленно ©
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
A_l_e_k_s
сообщение 9.2.2009, 0:28
Сообщение #13


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 445
Регистрация: 29.5.2008
Из: Новоалтайск
Пользователь №: 34 897



Цитата(Emerald_ILYA @ 8.2.2009, 14:08) *

Т.е. мне необходимо окомпелировать программу в Windows и Linux отдельно, что бы работала и там и там, верно ?

Цитата(Krawler @ 8.2.2009, 14:51) *

Да.


А что делать если одна и та же прога работает на одной машине и не работает на другой ? (2 одинаковых системника с одной и той же операционкой (лицензия) из одной партии) Всё идентично, все дрова, сетевые настройки, ну полное совпадение. Смех смехом, а мне завтра хоть с бубном пляши.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
mephisto
сообщение 9.2.2009, 0:34
Сообщение #14


ортодоксальный линуксоид
Group Icon


Группа: VIP
Сообщений: 7 724
Регистрация: 17.11.2007
Из: столицы вашей родины
Пользователь №: 10 849



Цитата(A_l_e_k_s @ 8.2.2009, 23:28) *

А что делать если одна и та же прога работает на одной машине и не работает на другой ? (2 одинаковых системника с одной и той же операционкой (лицензия) из одной партии) Всё идентично, все дрова, сетевые настройки, ну полное совпадение. Смех смехом, а мне завтра хоть с бубном пляши.

А набор установленного софта совпадает?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
A_l_e_k_s
сообщение 9.2.2009, 0:37
Сообщение #15


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 445
Регистрация: 29.5.2008
Из: Новоалтайск
Пользователь №: 34 897



Цитата(mephisto @ 8.2.2009, 23:34) *

А набор установленного софта совпадает?


Да, работники из одного отдела, схема установки отработана до автоматизма, меньше поставить нельзя, а больше некогда.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
shouhei
сообщение 9.2.2009, 10:53
Сообщение #16


Himmelsstürmer
Group Icon


Группа: Events and facts club
Сообщений: 33 866
Регистрация: 2.4.2008
Из: Caught somewhere in time
Пользователь №: 27 739



Репутация:   1421  


Цитата(A_l_e_k_s @ 8.2.2009, 23:37) *

Да, работники из одного отдела, схема установки отработана до автоматизма, меньше поставить нельзя, а больше некогда.


А если просто скопировать диск 1 в 1? Нортон гостом там или акронисом? Потом нужно же будет только имя и ай-пи поменять.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Linky
сообщение 10.2.2009, 11:22
Сообщение #17


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 3 466
Регистрация: 31.3.2008
Из: Барнаул
Пользователь №: 27 560



Репутация:   243  


Код

//c++
class A
{
    int a;
public:
    A();
    int test_one(){return a*a;};
    inline int test_two(int d=2);
};

A::A(){
    a=1;
};

inline int A::test_two(d)
    {return d*a;}


Будут ли функции test_one и test_two являтся inline? или это всё таки зависит от компилятора?

//сорри, мб немного не в тему, но просто в предыдущий раз мне не ответили в теме Си.. )

Сообщение отредактировал Linky - 10.2.2009, 12:01
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Krawler
сообщение 10.2.2009, 15:06
Сообщение #18


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 305
Регистрация: 24.5.2008
Из: А адресок не надо????
Пользователь №: 34 141



Репутация:   18  


Цитата(Linky @ 10.2.2009, 11:22) *

Будут ли функции test_one и test_two являтся inline? или это всё таки зависит от компилятора?

//сорри, мб немного не в тему, но просто в предыдущий раз мне не ответили в теме Си.. )

Зависит от компилятора, ведь ключевое слово inline это всего лишь рекомендация компилятору и он не обязан ее выполнять...

Сообщение отредактировал Krawler - 10.2.2009, 15:08
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Linky
сообщение 10.2.2009, 18:00
Сообщение #19


МЕГА флудер
Group Icon


Группа: Sibnet-club
Сообщений: 3 466
Регистрация: 31.3.2008
Из: Барнаул
Пользователь №: 27 560



Репутация:   243  


Цитата(Krawler @ 10.2.2009, 14:06) *

Зависит от компилятора, ведь ключевое слово inline это всего лишь рекомендация компилятору и он не обязан ее выполнять...

Ну я это понимаю, самое главное интересно по какому принципу он принимает решение ? )
И здесь как бы 2 вопроса, если опускать слово inline и определять ф-ю сразу т.е. например func(){}; или как ф-я test_one она ведь по умолчанию inline?

Сообщение отредактировал Linky - 10.2.2009, 18:05
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Krawler
сообщение 10.2.2009, 19:24
Сообщение #20


Любит поговорить
Group Icon


Группа: Sibnet-club
Сообщений: 305
Регистрация: 24.5.2008
Из: А адресок не надо????
Пользователь №: 34 141



Репутация:   18  


Цитата(Linky @ 10.2.2009, 18:00) *

Ну я это понимаю, самое главное интересно по какому принципу он принимает решение ? )
И здесь как бы 2 вопроса, если опускать слово inline и определять ф-ю сразу т.е. например func(){}; или как ф-я test_one она ведь по умолчанию inline?

Я думаю, что он основывается на размере функции, согласись, если функция занимает две-три строчки то можно каждый раз вставлять ее код вместо организации вызова к ней... А если она занимает полстраницы то гораздо лучше вызвать ее. Если слово inline опустить, то он все равно может сделать функцию встроенной. Такие маленькие ф-ии как test_one обычно компиляторы делают inline

Сообщение отредактировал Krawler - 10.2.2009, 21:51
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

58 страниц V  1 2 3 > » 
Ответить в эту темуОткрыть новую тему
1 чел. просматривают этот форум (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 29.3.2024, 21:38
Редакция: (383) 347-86-84

Техподдержка:
help.sibnet.ru
Размещение рекламы:
тел: (383) 347-06-78, 347-10-50

Правила использования материалов