Форум программистов, компьютерный форум CyberForum.ru

На самом деле #define'а нету. - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
DP1
-45 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 24
25.12.2010, 20:37     На самом деле #define'а нету. #1
На самом деле #define нету.
Вот например если мы напишем в c++
C++
1
2
#define yes 1
#define no 0
то на самом деле мы получим
C++
1
2
int yes=1;
int no=0;
И Т.П
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2010, 20:37     На самом деле #define'а нету.
Посмотрите здесь:

C++ ошибки которых на самом деле нет
Что такое ссылка на самом деле? C++
Число double 0.1 на самом деле не 0.1 C++
C++ Передача массива в функцию - что на самом деле предается?
C++ #define
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.12.2010, 22:15     На самом деле #define'а нету. #21
Цитата Сообщение от 'Kastaneda' Посмотреть сообщение
Зачем выкладывать фото монитора, на котором открыт html файл в блокноте, в теме "На самом деле #define'а нету."
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
25.12.2010, 22:20     На самом деле #define'а нету. #22
Куда мир катится... О_о

На самом деле #define нету.
Вот например если мы напишем в c++
C++
1
2
#define yes 1
#define no 0
то на самом деле мы получим

C++
1
2
int yes=1;
int no=0;
И Т.П
Неужели? тогда почему я так не могу сделать?
C++
1
2
3
4
5
6
7
#define a 10
 
int main()
{
    a = 15;
    return 0;
}
DP1
-45 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 24
25.12.2010, 22:20  [ТС]     На самом деле #define'а нету. #23
я имею введу прогу
DP1
-45 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 24
25.12.2010, 22:22  [ТС]     На самом деле #define'а нету. #24
Это доказательство что это прога
Миниатюры
На самом деле #define'а нету.  
Kastaneda
25.12.2010, 22:26
  #25

Не по теме:

Ну а что, весомое доказательство. Так значит действительно дефайнов нет. Черт, мое мировозрение пошатнулось(

DP1
-45 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 24
25.12.2010, 22:26  [ТС]     На самом деле #define'а нету. #26
Цитата Сообщение от ISergey Посмотреть сообщение
Куда мир катится... О_о



Неужели? тогда почему я так не могу сделать?
C++
1
2
3
4
5
6
7
#define a 10
 
int main()
{
    a = 15;
    return 0;
}
Конечно не можешь. омпилятор скрывает эту переменную!
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.12.2010, 22:27     На самом деле #define'а нету. #27
DP1, и что? Ну скрыл он её. И что дальше?
А если скрыл, то почему? Если она, так сказать, глобальная.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.12.2010, 22:30     На самом деле #define'а нету. #28
ТС, не в обиду, но иди-ка ты почитай книжки, тебе уже сто раз объяснили, что есть #define и что тут он есть.
DP1
-45 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 24
25.12.2010, 22:30  [ТС]     На самом деле #define'а нету. #29
То что
Delphi
1
if pos('tata') then writeln('Error unindefecer indefecator tata')
ForEveR
25.12.2010, 22:31
  #30

Не по теме:

Ага. Понятно. Еще один Denes или Великан или как его еще там...

silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.12.2010, 22:31     На самом деле #define'а нету. #31
Ладно, скажу больше. Почему я не могу сделать так

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
#define a 15
 
int main()
{
    int a = 10;
    return 0;
}
Если у нас a в main должен перекрывать глобальную a, в которую превращается несуществующий define.
DP1
-45 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 24
25.12.2010, 22:32  [ТС]     На самом деле #define'а нету. #32
Цитата Сообщение от ForEveR Посмотреть сообщение
ТС, не в обиду, но иди-ка ты почитай книжки, тебе уже сто раз объяснили, что есть #define и что тут он есть.
его не было и никогда не будет!!!
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.12.2010, 22:32     На самом деле #define'а нету. #33
Понятно, толстый тролль... Надо же, а я купился...
DP1
-45 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 24
25.12.2010, 22:33  [ТС]     На самом деле #define'а нету. #34
я уже сто раз сказал даже код выложил! что вам ещё надо
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.12.2010, 22:34     На самом деле #define'а нету. #35
DP1, К примеру чтобы ты почитал книжку и не спорил с дядями... Hello world То хоть сам на плюсах написал?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.12.2010, 22:35     На самом деле #define'а нету. #36
Цитата Сообщение от 'DP1' Посмотреть сообщение
что вам ещё надо
Мне бы проц новый не помешал и гиговая плашка оперативки...
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
25.12.2010, 22:41     На самом деле #define'а нету. #37
C
1
2
3
4
5
6
7
#define a 10
 
int main()
{
     a;
     return 0;
}
gcc -E file.c
DP1
-45 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 24
25.12.2010, 22:46  [ТС]     На самом деле #define'а нету. #38
в мою пользу

Добавлено через 47 секунд
Извени мне сомаму побольше оп надо
MegaAce
 Аватар для MegaAce
330 / 304 / 65
Регистрация: 14.02.2010
Сообщений: 662
25.12.2010, 22:57     На самом деле #define'а нету. #39
Хотел дизассемблирнуть ексешку с
C++
1
2
3
4
5
6
7
#define a 10
 
int main()
{
     int b=a;
     return 0;
}
Комп завис! Не дано мне знать как оно работает!
Но уверен что оно заменяет в процессе компилирования a на 10, и все!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2010, 23:20     На самом деле #define'а нету.
Еще ссылки по теме:

что же на самом деле делает strcpy? C++
C++ c++11 и $define
C++ Что такое string на самом деле?

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
25.12.2010, 23:20     На самом деле #define'а нету. #40
Цитата Сообщение от MegaAce Посмотреть сообщение
Но уверен что оно заменяет в процессе компилирования
В процессе препроцессирования. Для gcc ключ -E позволяет посмотреть, как будет выглядеть после этого исходный код.
Yandex
Объявления
25.12.2010, 23:20     На самом деле #define'а нету.
Ответ Создать тему
Опции темы

Текущее время: 17:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru