Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как задать значение переменной, которая определяет длину массива?
|
|||
|---|---|---|---|
|
#18+
В h- файле объявлена структура с полем Client: Код: plaintext 1. 2. 3. 4. 5. 6. Я пробовал перед объявлением структуры объявить глобальную переменную (и определить в cpp- файле), создать статическое поле структуры (и также определить в cpp- файле), но все равно получаю ошибку: Код: plaintext 1. 2. ^ Как задать размер массива? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2018, 08:53 |
|
||
|
Как задать значение переменной, которая определяет длину массива?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, Так не годится. Ведь ты, фактически, полагаешься на линковщик, который свяжет переменную с реальным значением из какого-то .cpp файла или библиотеки, которая будет доступна в момент загрузки бинаря. Но это нужно самому компилятору, каждый раз когда очередная единица трансляции включает в себя этот хедер, она должна точно определить размер структуры по имеющимся данным, а, получается, что размер валяется в какой-то левой единице трансляции. Неужели просто до объявления структуры нельзя сделать что-то например Код: plaintext 1. 2. 3. 4. 5. Учти, что размер должен быть обязательно вычислябельным и детерминированным на этапе компиляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2018, 09:06 |
|
||
|
Как задать значение переменной, которая определяет длину массива?
|
|||
|---|---|---|---|
|
#18+
NekZAlekseySQL, Так не годится. Ведь ты, фактически, полагаешься на линковщик, который свяжет переменную с реальным значением из какого-то .cpp файла или библиотеки, которая будет доступна в момент загрузки бинаря. Но это нужно самому компилятору, каждый раз когда очередная единица трансляции включает в себя этот хедер, она должна точно определить размер структуры по имеющимся данным, а, получается, что размер валяется в какой-то левой единице трансляции. Неужели просто до объявления структуры нельзя сделать что-то например Код: plaintext 1. 2. 3. 4. 5. Учти, что размер должен быть обязательно вычислябельным и детерминированным на этапе компиляции. Спасибо, но у меня этот h- файл потом в несколько мест инклюдится и поэтому получится множественное определение. Использовать неименованные пространства имен также не получится: в других модулях мне надо знать размер массива (чтобы организовывать циклы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2018, 09:23 |
|
||
|
Как задать значение переменной, которая определяет длину массива?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLСпасибо, но у меня этот h- файл потом в несколько мест инклюдится и поэтому получится множественное определение. Использовать неименованные пространства имен также не получится: в других модулях мне надо знать размер массива (чтобы организовывать циклы). Ты точно уверен в том, что у тебя получается множественное определение, тебе линкер об этом сказал? Глобальные const объекты в C++ имеют внутреннюю линковку, если не объявлены как extern. http://eel.is/c draft/basic.link#3 A name having namespace scope has internal linkage if it is the name of (3.1) a variable, function or function template that is explicitly declared static; or, (3.2) a non-inline variable of non-volatile const-qualified type that is neither explicitly declared extern nor previously declared to have external linkage ; or (3.3) a data member of an anonymous union. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2018, 09:36 |
|
||
|
Как задать значение переменной, которая определяет длину массива?
|
|||
|---|---|---|---|
|
#18+
NekZТы точно уверен в том, что у тебя получается множественное определение, тебе линкер об этом сказал? Глобальные const объекты в C++ имеют внутреннюю линковку, если не объявлены как extern. http://eel.is/c draft/basic.link#3A name having namespace scope has internal linkage if it is the name of (3.1) a variable, function or function template that is explicitly declared static; or, (3.2) a non-inline variable of non-volatile const-qualified type that is neither explicitly declared extern nor previously declared to have external linkage ; or (3.3) a data member of an anonymous union. Спасибо, не знал, что константные глобальные объекты можно не делать extern. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2018, 09:50 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2017850]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 296ms |
| total: | 434ms |

| 0 / 0 |
