Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Tankist 90
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349

Остаются ли комментарии из исходного кода в собранном бинарном файле (ехе-шнике)?

30.01.2021, 18:58. Показов 2462. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. Собственно вопрос в заголовке. В доках пишется что текст в комментариях игнорируется компилятором.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.01.2021, 18:58
Ответы с готовыми решениями:

Как сгенерировать событие — обновление данных таблицы в чужом ехе-шнике?
Есть некая программа — просто ехе файл, без исходников. Она читает данные и пишет их себе в таблицу. Эту таблицу мне нужно импортировать...

Остаются ли в скомпилированном EXE комментарии оставленные разработчиком?
Собственно вопрос. При компиляции комменты оставленные к коду остаются или компилятор их выкидывает из кода?

В каком файле исходного кода находится функция main?
Можно ли как-то программно определить в каком файле исходного кода находиться функция main?

17
57 / 43 / 12
Регистрация: 27.10.2018
Сообщений: 454
30.01.2021, 19:05
Лучший ответ Сообщение было отмечено Tankist 90 как решение

Решение

Цитата Сообщение от Tankist 90 Посмотреть сообщение
текст в комментариях игнорируется компилятором
Так и есть. Никаких комментариев в исполняемых файлах нету.
1
 Аватар для Tankist 90
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
30.01.2021, 19:25  [ТС]
plzvtl, т.е. если программу дизассемблировать и поискать в ассемблерном листинге, то строк "Hello World" и "prints Hello World" там не будет (и в байтовом представлении тоже)?
C++
1
2
3
4
5
6
7
8
9
10
11
/*
Hello World
*/
#include <iostream>
using namespace std;
 
main() {
   cout << "Hello World"; // prints Hello World
   
   return 0;
}
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
30.01.2021, 20:43
Цитата Сообщение от Tankist 90 Посмотреть сообщение
строк "Hello World" и "prints Hello World" там не будет
Hello World будет (это же строка), а всё что за комментарием нет конечно же.
1
2621 / 1632 / 266
Регистрация: 19.02.2010
Сообщений: 4,330
30.01.2021, 21:06
Цитата Сообщение от _lunar_ Посмотреть сообщение
Hello World будет (это же строка)
ТС имел в виду строку 2 в его коде (а она у него просто случайно совпадает с той строкой, которая выводится в cout).
Т.е. он спрашивал про 2 разных стиля оформления комментариев (через /* */ и через // ) - будут ли оба варианта не попадать в екзешник.
1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12923 / 6790 / 1818
Регистрация: 18.10.2014
Сообщений: 17,180
30.01.2021, 23:34
Цитата Сообщение от Tankist 90 Посмотреть сообщение
т.е. если программу дизассемблировать и
Сначала программу нужно скомпилировать. А это невозможно из-за пропущенного типа возвращаемого значения функции main.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
31.01.2021, 10:18
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
это невозможно из-за пропущенного типа возвращаемого значения функции main
стоит уточнить, что в VS для C++ да, нужно указывать тип функции main, но для C необязательно.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
31.01.2021, 11:09
Цитата Сообщение от Tankist 90 Посмотреть сообщение
Приветствую. Собственно вопрос в заголовке. В доках пишется что текст в комментариях игнорируется компилятором.
Tankist 90, если бы машина умела читать комменты (на досуге, чтобы не снижать производительность), это могло бы повысить её уровень понимания сути вещей. Минусом является большая вероятность побочного эффекта в види мерзкого хихиканья из системного блока. Это демотивирует пользователей и уязвляет самооценку программистов. Минус перевешивает плюс и от данной практики люди отказались очень давно.
3
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12923 / 6790 / 1818
Регистрация: 18.10.2014
Сообщений: 17,180
31.01.2021, 12:59
Цитата Сообщение от _lunar_ Посмотреть сообщение
стоит уточнить, что в VS для C++ да, нужно указывать тип функции main, но для C необязательно.
Уже давно обязательно (!) и для С, и для С++.

VS здесь ни при чем. Уж не говоря о том, что не ясно, что означает "для C необязательно", когда программа написана на С++.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
31.01.2021, 13:25
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
же давно обязательно (!) и для С, и для С++.
я ещё раз говорю - для С необязательно писать int
C
1
2
3
4
5
6
#include <stdio.h>
wmain()
{
    wprintf(L"Hello World");
    return 0;
}
спокойно компилируется и работает.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12923 / 6790 / 1818
Регистрация: 18.10.2014
Сообщений: 17,180
31.01.2021, 13:55
Цитата Сообщение от _lunar_ Посмотреть сообщение
я ещё раз говорю - для С необязательно писать int.
Я еще раз говорю: для С обязательно писать int.

Смотрим сюда:
http://port70.net/~nsz/c/c11/n1570.html#Forewordp7

- remove implicit int

"Second edition" - это C99

Цитата Сообщение от _lunar_ Посмотреть сообщение
спокойно компилируется и работает.
Нет, не компилируется. Либо вы проигнорировали диагностические сообщения компилятора. Либо то, чем вы это компилировали, вообще не имеет отношения к С.
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
31.01.2021, 16:49
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Нет, не компилируется.
о боже



я для кого написал VS и C
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
31.01.2021, 16:50
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Смотрим сюда:
а ссылки типа от умных людей оставьте себе, т.к. я в разы знаю больше них
0
5 / 5 / 2
Регистрация: 27.11.2016
Сообщений: 93
31.01.2021, 17:30
Цитата Сообщение от Tankist 90 Посмотреть сообщение
В доках пишется что текст в комментариях игнорируется компилятором.
Препроцессор отрабатывает перед компиляцией. Он и избавится от комментариев)
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
31.01.2021, 18:26
Цитата Сообщение от _lunar_ Посмотреть сообщение
а ссылки типа от умных людей оставьте себе, т.к. я в разы знаю больше них
"Земля плоская, а доказательства типа умных людей я слушать не буду"
Вот из википедии о стандарте С99
In particular, a declaration that lacks a type specifier no longer has int implicitly assumed. The C standards committee decided that it was of more value for compilers to diagnose inadvertent omission of the type specifier than to silently process legacy code that relied on implicit int. In practice, compilers are likely to display a warning, then assume int and continue translating the program.
компиляторы не обязаны компилить код, который не соответствует стандарту, поэтому main без int - ошибка, но некоторые её прощают
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12923 / 6790 / 1818
Регистрация: 18.10.2014
Сообщений: 17,180
31.01.2021, 19:54
Цитата Сообщение от _lunar_ Посмотреть сообщение
я для кого написал VS и C
Я же ясно написал: вы пользуетесь компилятором, который не является компилятором языка С.

Конформный компилятор языка С обязан выдать диагностическое сообщение в ответ на ваш код. Не выдал? Сорри, ваш компилятор или сломан, или не является компилятором языка С (формально это одно и то же).

Цитата Сообщение от _lunar_ Посмотреть сообщение
а ссылки типа от умных людей оставьте себе, т.к. я в разы знаю больше них
Не смешите собравшихся, пожалуйста. Вы пока что делаете первые "пионэрские" шаги в изучении С: путаете глюки компилятора с свойствами языка программирования. Через этот форум таких проходят тысячи. (Но, судя по тому, что моя наука заходит плохо, на "пионэрской" стадии вы застрянете надолго.)

Это не "ссылки от умных людей", это определение языка С. Того самого языка С, о котором вы нам тут пытаетесь рассказывать.

P.S. И еще три урока на будущее:
1. В программе на языке С должна присутствовать функция main
2. Для wprintf в стандартной библиотеке С нужен <wchar.h>, а не <stdio.h>
3. Потрудитесь код сюда постить в виде текста, а не в виде скриншота
1
249 / 79 / 31
Регистрация: 29.03.2020
Сообщений: 497
31.01.2021, 21:08
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
вы пользуетесь компилятором, который не является компилятором языка С
Стандарт С89 (ANCI C) никто не отменял и компилятор не поддерживающий С99, но поддерживающий C89 остается компилятором языка С
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12923 / 6790 / 1818
Регистрация: 18.10.2014
Сообщений: 17,180
31.01.2021, 22:31
Цитата Сообщение от transetor Посмотреть сообщение
Стандарт С89 (ANCI C) никто не отменял
Нет. Как раз таки стандарт С89 формально отменен стандартом С99. Но речь даже не об этом.

Цитата Сообщение от transetor Посмотреть сообщение
и компилятор не поддерживающий С99, но поддерживающий C89 остается компилятором языка С
Нет. Постарайтесь запомнить, что термин "язык С" всегда однозначно обозначает язык С как он описывается последним действующим стандартом языка. В рамках своего сообщения (статьи, выступления и т.п.) вы имеете право оговорить иное - для краткости - но это нужно делать явно и специально.

Компилятор, "не поддерживающий С99, но поддерживающий C89" НЕ остается компилятором языка С. Он остается компилятором языка С89.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.01.2021, 22:31
Помогаю со студенческими работами здесь

Как указать определения препроцессора непосредственно в файле исходного кода?
3.Как указать определения препроцессора непосредственно в файле исходного кода?

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

БД в бинарном файле
Доброго времени суток! Нужно создать БД, которая хранит несколько таблиц. БД с ее данными должна храниться в бинарном файле на диске....

Изменение значка в ехе-файле
Через Project-Options-Application-Icon-Load Icon... загрузил иконку 128х128. Хотел заменить в ехе стандартную иконку делфи. Скомпилировал....

ToolTipText не работает в ЕХЕ файле
Поставил ToolTipText для элементов Grid, RichTextBox, TreeView. Под VB все нормально, а в exe_шнике не работает. Может кто-то сталкивался с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru