Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/137: Рейтинг темы: голосов - 137, средняя оценка - 4.81
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30

[C++] define как определение константы vs. макроса

09.08.2012, 08:09. Показов 30155. Ответов 370
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На всякий случай. Это не константа, а макрос

 Комментарий модератора 
Начало здесь: Директива препроцессора #if
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.08.2012, 08:09
Ответы с готовыми решениями:

Как происходит формирование константы типа #define?
Подскажите, пожалуйста, как происходит формирование константы типа #define и почему использование такой константы в некоторых конструкциях...

Массив, константы и #define
Всем доброго дня! Сразу к делу. Есть большое желание иметь массив длиной в константу и саму эту константу для работы. Очевидно, что...

Define внутри макроса
Подкажите возможно ли написать макрос кот. создаст #define? например: #define MACRO(name) #define NAME name знаю, что напрямую...

370
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.08.2012, 09:46
C++
1
2
3
#ifndef BIT_ORDER //Если BIT_ORDER не объявлен (об этом говорит ndef)
#define BIT_ORDER BYTE_ORDER //объявить BIT_ORDER как BYTE_ORDER
#endif
- вот что это значит

Добавлено через 3 минуты
Кстати Evg, ты неверно интерпретировал BIT_ORDER - это константа, а макросы это то что идёт за define - ами, тобишь bit0,bit1 - вот они то выделяют биты в зависимости от того какой порядок байтов использует архитектура (тобишь как объявлен BIT_ORDER)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#if (BIT_ORDER == BYTE_ORDER)
#define bit0 (1<<0)
#define bit1 (1<<1)
#define bit2 (1<<2)
#define bit3 (1<<3)
#define bit4 (1<<4)
#define bit5 (1<<5)
#define bit6 (1<<6)
#define bit7 (1<<7)
#define bit8 (1<<8)
#define bit9 (1<<9)
#define bit10 (1<<10)
#define bit11 (1<<11)
#define bit12 (1<<12)
#define bit13 (1<<13)
#define bit14 (1<<14)
#define bit15 (1<<15)
#define bit16 (1<<16)
#define bit17 (1<<17)
#define bit18 (1<<18)
#define bit19 (1<<19)
#define bit20 (1<<20)
#define bit21 (1<<21)
#define bit22 (1<<22)
#define bit23 (1<<23)
#define bit24 (1<<24)
#define bit25 (1<<25)
#define bit26 (1<<26)
#define bit27 (1<<27)
#define bit28 (1<<28)
#define bit29 (1<<29)
#define bit30 (1<<30)
#define bit31 (1<<31)
#else
#define bit0 (1<<(31-0))
#define bit1 (1<<(31-1))
#define bit2 (1<<(31-2))
#define bit3 (1<<(31-3))
#define bit4 (1<<(31-4))
#define bit5 (1<<(31-5))
#define bit6 (1<<(31-6))
#define bit7 (1<<(31-7))
#define bit8 (1<<(31-8))
#define bit9 (1<<(31-9))
#define bit10 (1<<(31-10))
#define bit11 (1<<(31-11))
#define bit12 (1<<(31-12))
#define bit13 (1<<(31-13))
#define bit14 (1<<(31-14))
#define bit15 (1<<(31-15))
#define bit16 (1<<(31-16))
#define bit17 (1<<(31-17))
#define bit18 (1<<(31-18))
#define bit19 (1<<(31-19))
#define bit20 (1<<(31-20))
#define bit21 (1<<(31-21))
#define bit22 (1<<(31-22))
#define bit23 (1<<(31-23))
#define bit24 (1<<(31-24))
#define bit25 (1<<(31-25))
#define bit26 (1<<(31-26))
#define bit27 (1<<(31-27))
#define bit28 (1<<(31-28))
#define bit29 (1<<(31-29))
#define bit30 (1<<(31-30))
#define bit31 (1<<(31-31))
#endif
И ниже тоже макросы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#define BITFIELD_2(t,a,b)               t b,a
#define BITFIELD_3(t,a,b,c)             t c,b,a
#define BITFIELD_4(t,a,b,c,d)           t d,c,b,a
#define BITFIELD_5(t,a,b,c,d,e)         t e,d,c,b,a
#define BITFIELD_6(t,a,b,c,d,e,f)       t f,e,d,c,b,a
#define BITFIELD_7(t,a,b,c,d,e,f,g)     t g,f,e,d,c,b,a
#define BITFIELD_8(t,a,b,c,d,e,f,g,h)   t h,g,f,e,d,c,b,a
 
#else   /*LITTLE_ENDIAN*/
 
#define BITFIELD_2(t,a,b)               t a,b
#define BITFIELD_3(t,a,b,c)             t a,b,c
#define BITFIELD_4(t,a,b,c,d)           t a,b,c,d
#define BITFIELD_5(t,a,b,c,d,e)         t a,b,c,d,e
#define BITFIELD_6(t,a,b,c,d,e,f)       t a,b,c,d,e
#define BITFIELD_7(t,a,b,c,d,e,f,g)     t a,b,c,d,e,f,g
#define BITFIELD_8(t,a,b,c,d,e,f,g,h)   t a,b,c,d,e,f,g,h
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
09.08.2012, 13:27  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Кстати Evg, ты неверно интерпретировал BIT_ORDER - это константа
Ну-ну...
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.08.2012, 14:20

Не по теме:

Evg, да хоть ну ну хоть не ну ну...
Если код не разбираешь хоть людей не свбивай
Какой это к чёрту макрос - если сравнение к нему применимо?:facepalm:

C++
1
#if (BIT_ORDER == BYTE_ORDER)
а ладно, что говорить я же всё равно ничего не знаю...



Добавлено через 8 минут

Не по теме:

Кстати Evg, вот отрывок из endian.h
http://www.koders.com/c/fid0E2... 5AF12.aspx

#ifndef _ENDIAN_H
#define _ENDIAN_H

#define __LITTLE_ENDIAN 1234
#define __BIG_ENDIAN 4321

#if defined(__i386__) || defined(__x86_64__) || defined(__ia64__)
#define __BYTE_ORDER __LITTLE_ENDIAN
#define __FLOAT_WORD_ORDER __BYTE_ORDER
#endif

#define LITTLE_ENDIAN __LITTLE_ENDIAN
#define BIG_ENDIAN __BIG_ENDIAN
#define BYTE_ORDER __BYTE_ORDER
но х*ле "тупой Юра" никогда ничего правильно не говорит:D, ну ну...
PS:Я конечно не хочу тебя обидеть, но если пишешь под линукс то вин32 сначала подучи а потом экспертно отвечай;)

0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.08.2012, 14:44
-=ЮрА=-, Почитал бы ты про макросы.
C++
1
#if (BIT_ORDER == BYTE_ORDER)
И то и другое вполне могут быть константы, но скорее всего это макросы. И кто тебе сказал, что к макросам не применимо сравнение?

A preprocessing directive of the form
C++
1
# define identifier replacement-list new-line
defines an object-like macro that causes each subsequent instance of the macro name to be replaced
by the replacement list of preprocessing tokens that constitute the remainder of the directive. The
replacement list is then rescanned for more macro names as specified below.
И пример пожалуй предоставлю.

C++
1
2
3
4
5
6
7
8
9
#define N 4
#define M 4
#if (N == M)
   #error "Equality"
#endif
 
int main()
{
}
http://liveworkspace.org/code/... 0528777248
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
09.08.2012, 15:01  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Какой это к чёрту макрос - если сравнение к нему применимо?
Ты точно знаешь, что такое макрос? По-моему нет
1
09.08.2012, 15:22

Не по теме:

Evg, Похоже Юра знает только про функциональные макросы (function-like macro)

0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
09.08.2012, 15:32  [ТС]
Мне аж интересно, что он на такой тест скажет (по его логике, если сравнение применимо, значит сравнивается "константа"):

C
#define A a
#define B b
 
#include <stdio.h>
 
int main (void)
{
#if A == B
  printf ("aaa\n");
#else
  printf ("bbb\n");
#endif
 
  return 0;
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.08.2012, 15:41

Не по теме:

ForEveR, Юра знает что такое объявление константы и что такое макрос

Цитата Сообщение от Evg Посмотреть сообщение
Ты точно знаешь, что такое макрос? По-моему нет
http://ru.wikipedia.org/wiki/Макрос
Макрос - программный объект, который во время вычисления заменяется на новый объект, создаваемый определением макроса на основе его аргументов, затем выражается обычным образом.
Макрос в отличие от коснтанты подразумевает какое либо действие (вот его структурная схема
(DEFMACRO имя список_формальных_параметров тело)) - верней это правило что то вроде template обвёртки, а константа она и в африке константа.
Так вот ForEveR, прежде чем приводить свой код внимательно посмотри объявления хедеров :
C++
1
2
3
4
5
6
#define __LITTLE_ENDIAN  1234 //- это константа
#define __BIG_ENDIAN     4321 //- и это тоже
а вот здесь эти значения констант присваиваются другим константам
#define LITTLE_ENDIAN    __LITTLE_ENDIAN
#define BIG_ENDIAN   __BIG_ENDIAN
#define BYTE_ORDER   __BYTE_ORDER
Я предположу, что вы оба макросами константы обзываете, ну что ж тогда вы неверно интерпретируете язык и всё что с ним связано...
Впрочем я давно уже сделал выводы об вашем уровне для Вин32 и не удивлесь если для вас макрос это define N 5 :)



Добавлено через 2 минуты
Evg, ты тут объявил
Цитата Сообщение от Evg Посмотреть сообщение
#define A a
#define B b
#include <stdio.h>
int main (void)
{
#if A == B
* printf ("aaa\n");
#else
* printf ("bbb\n");
#endif
return 0;
}
две константы A и В причём неудачно т.к. а и b будут залиты одним и тем же произвольным мусором (думаю компилятор всё задефалтит произвольными значениями из INT_MIN-INT_MAX)
и по хорошему твое объявление равносильно вот такому вот багу
C++
1
2
int N;
int * a = new int[N];
ну да ладно ты же эксперт Вин32 по идеи сам должен знать
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.08.2012, 15:43
-=ЮрА=-, В С++ ВСЕ, что объявлено через #define является макросом, ты можешь называть это символической константой, но это макрос, был есть и будет.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.08.2012, 15:51
Evg, кстати о произвольном значении констант http://codepad.org/wZYTtxYl
In function 'main':
Line 13: error: 'a' undeclared (first use in this function)
Line 13: error: (Each undeclared identifier is reported only once
Line 13: error: for each function it appears in.)
Line 14: error: 'b' undeclared (first use in this function)


Добавлено через 3 минуты
ForEveR, надеюсь заберёшь свои слова - прочти вики
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
http://ru.wikipedia.org/wiki/Макрос
- особенно его структуру
#define N 5 - макрос ))))
Слушааай а это макрос тоже да
C++
1
2
3
4
5
 
/* yvals.h values header for Microsoft C/C++ */
#if defined(__cplusplus)
  #define _STD          std::
  #define _STD_BEGIN    namespace std {
- фууууух

Аахахаха ребят ну вам только новый язык разработать - идеи у вас

Добавлено через 2 минуты

Не по теме:

Надо бы в свой блог картинками эту дискусию залить - не ну прям перлы, так и назову Перлы С/С++:D:D:D

0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.08.2012, 15:52
-=ЮрА=-, Мне пох на вики. Читай стандарт блин.

preprocessing directive of the form
C++
1
# define identifier replacement-list new-line
defines an object-like macro that causes each subsequent instance of the macro name153 to be replaced
by the replacement list of preprocessing tokens that constitute the remainder of the directive.154 The
replacement list is then rescanned for more macro names as specified below.
A preprocessing directive of the form
C++
1
2
3
# define identifier lparen identifier-listopt ) replacement-list new-line
# define identifier lparen ... ) replacement-list new-line
# define identifier lparen identifier-list , ... ) replacement-list new-line
defines a function-like macro with parameters, whose use is similar syntactically to a function call. The
parameters are specified by the optional list of identifiers, whose scope extends from their declaration in the
identifier list until the new-line character that terminates the #define preprocessing directive. Each subse-
quent instance of the function-like macro name followed by a ( as the next preprocessing token introduces
the sequence of preprocessing tokens that is replaced by the replacement list in the definition (an invocation
of the macro). The replaced sequence of preprocessing tokens is terminated by the matching ) preprocessing
token, skipping intervening matched pairs of left and right parenthesis preprocessing tokens. Within the
sequence of preprocessing tokens making up an invocation of a function-like macro, new-line is considered a
normal white-space character.
Я тебе намекну, что
C++
1
#define N 5
подходит под правило
C++
1
#define identifier replacement-list new-line
иди читай стандарт, если ты знаешь что это такое.
2
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.08.2012, 15:56
#define identifier replacement-list new-line

#define N 5
N - identifier
5 - replacement-list
new-line - ой ёпт куда то провтыкалась new-line
Чувак я не ожидал от тебя этого
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.08.2012, 15:58
-=ЮрА=-, Ты мне скажи, ты идиот?
new-line:
the new-line character
C++
1
#define N 5
Законченый макрос. И после него очевидно будет стоять перевод строки. Так же можно поставить '\' и писать продолжение макроса на следующей строке.. Ты код-то пишешь вообще?

C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
#define N 5\
7\
3
 
int main()
{
   std::cout << N << std::endl;
}
http://liveworkspace.org/code/... 8548bd6ff7
2
09.08.2012, 16:03

Не по теме:

-=ЮрА=-, вам бы лучше самому K&R перечитать, а не мфцшки рисовать.. :)

2
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.08.2012, 16:09
ForEveR, я не идиот, а вот ты почитай
http://msdn.microsoft.com/en-u... s.80).aspx
а потом подумай
Defining macros and constants with the /D compiler option has the same effect as using a #define preprocessing directive at the beginning of your file.
что является макросом при дефе а что константой...
И да я тебя не оскорблял давай поумеришь свой пыл, умник!

Добавлено через 41 секунду
PS: nameless, тебе тоже читать...

Добавлено через 2 минуты
http://ru.cppreference.com/w/c... sor/define

Команда #define используется для организации замены строки по всему файлу, где она указана. Другими словами, #define приводит к тому, что компилятор (препроцессор) проходит по всему файлу и делает замену имя-макроса на заменяемая-строка.
Это типичный пример использования #define (как минимум в C):
C
1
2
3
4
5
6
7
#define TRUE 1
     #define FALSE 0
     ...
     int done = 0;
     while( done != TRUE ) {
        ...
     }
Другая возможность команды #define это возможность обрабатывать аргументы, что дает возможность создавать псевдофункции. Например такой код:
- А вот это создание макросов
#define absolute_value( x ) ( ((x) < 0) ? -(x) : (x) )
...
int num = -1;
while( absolute_value( num ) ) {
...
}
Добавлено через 1 минуту

Не по теме:

nameless,
ForEveR, Evg, но вам всем видимо этого не понять и даже TRUE для вас тоже будет макросом, мне не о чем с вами говорить...

Вместо итога

Цитата Сообщение от ForEveR Посмотреть сообщение
-=ЮрА=-, Мне пох на вики.
- это выссказывание отражает ваш уровень, для вас нет ничего экспертного либо стоящего выше - вы рубите в постах только исключительно свою интерпритацию чего-то прочтённого в умной книге или ресурсе. Конечно вы же умней всех, умней меня, умней экспертов вики, да ёпт умней всех :bravo:

0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.08.2012, 16:15
-=ЮрА=-, Я ж тебе кинул ссылку из стандарта... Стандарт определяет язык. Или ты английский не понимаешь?

Команда #define используется для организации замены строки по всему файлу, где она указана. Другими словами, #define приводит к тому, что компилятор (препроцессор) проходит по всему файлу и делает замену имя-макроса на заменяемая-строка.
Это типичный пример использования #define (как минимум в C):
МАКРОСА. Ты вообще видишь что читаешь?
- это выссказывание отражает ваш уровень, для вас нет ничего экспертного либо стоящего выше - вы рубите в постах только исключительно свою интерпритацию чего-то прочтённого в умной книге или ресурсе. Конечно вы же умней всех, умней меня, умней экспертов вики, да ёпт умней всех
Ты привел ОБЩЕЕ ОПИСАНИЕ МАКРОСА. Я тебе привел описание макроса из стандарта языка С++, о котором мы сейчас говорим.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.08.2012, 16:21
ForEveR, видимо именно ты не читаешь The #define Directive
http://msdn.microsoft.com/en-u... s.80).aspx

Не по теме:

You can use the #define directive to give a meaningful name to a constant in your program. The two forms of the syntax are:

-НЕУЖЕЛИ НЕ ВИДНО
meaningful name to a constant
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.08.2012, 16:24
-=ЮрА=-, MSDN НЕ стандарт С++. Это может называться символической константой, но по сути это макрос. Извини, третий раз выдержку из стандарта кидать не буду. Прочти для полного просветления. Давно бы уже открыл стандарт и посмотрел, чем по MSDN-у серфить
2
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
09.08.2012, 16:31
Ты СОВЕРШЕННО не понимаешь в чем суть макросов. Макросы это не константы «о, чуваки, зацените как я число пи определил, гыгы». Макросы это не псевдоинтеллектуальные функции. Макросы это не инклюд-гарды или что-то ещё. Макросы это конструкция, где компилятор может побыть чудовищем — ужасным, нелогичным, безразличным чудовищем, которым он на самом деле и является. Забыл написать скобки и передал бинарную операцию — а он смеется. Забыл закрыть кавычку или удалил не ту память, а он смеётся. Ты попытался объединить имена трёх переменных с помощью ##, а он смеётся и просит ещё. Скобки, обратные слеши, пропущенные точки с запятой — он смеётся. Оптимизация, лёгкость поддержки, ссылочная прозрачность, вложенные опеределения — он смеётся. Он бездушно компилирует твой говнокод, его предпочтения не основаны на здравом смысле, буквальное раскрытие — его стихия, он — истинный уродец, а не язык для метапрограммирования.
5
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.08.2012, 16:31
Помогаю со студенческими работами здесь

Вывести значение макроса #define
Здравствуйте. Возникла проблема с #define. Нужно каким-нибудь способом вывести на экран значение макроса #define типа этого:#define...

[C++] Директива #define. В виде макроса определен шаблон функции.
Здравствуйте! Есть проблема и мне она непонятна! В программке присутствует директива #define в ней в виде макроса определен...

Как реализовать директиву #define для создания шаблона отпределения #define ?
Здравствуйте уважаемые. При написании программы появилась необходимость задать шаблон создания #define через #define (извините за...

Определение константы
Помогите составить определение следующих данных - константа pi = π = 3.14159265358 (12 значащих цифр)

Определение макроса элемента
Добрый вечер! Может вопрос я поставил нитак, просто в VBA Excel я первый раз, обычно имел дело только с языками типа С. Дело в том что у...


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

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Новые блоги и статьи
Новый ноутбук
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 . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru