Я думаю мы всегда просто неправильно понимали using namespace, я вот нашёл интересный вариант использования в gdextension для C++. Вот моя интерпретация этого подхода:
myns::mytype myns::MyClass::sum(
myns::mytype a,
myns::mytype b
) {}
Мне кажется это громоздко, хотя если твой подход программирования предусматривает использование using, то это будет выглядеть как-то так, что мне тоже кажется уместным:
#include "prog.hpp"
#include "mytypedef.hpp"
using myns::MyClass;
using myns::mytype;
MyClass::MyClass() {}
MyClass::~MyClass() {}
mytype MyClass::sum(mytype a, mytype b) {}
про packed-структуры слышал, но по мне так это какая-то шляпа, тем более наличие свободных байтов во время тестов структур позволяет их более плотно упорядочить простой перестановкой строк типов, хотя наверное я просто не сталкивался с необходимостью в их упаковке...
интеловский получается LITTLE_ENDIAN(..., 2^3, 2^2, 2^1, 2^0), а мотороллерный - BIG_ENDIAN(2^0, 2^1, 2^2, 2^3, ...), если я правильно понял, что ты имел в виду.
Кстати, не в курсе про htonl(), htons(), ntohl() и ntohs() . Я просто видел упоминания вместе с byte order, но так и не понял зачем нужно и как использовать.
Спасибо за уточнение. Но можно уточнить у вас, как у знающего?
В частности на микроконтроллерах AVR указатели на память программ могут быть 16-разрядными и 24-разрядными.
В пределах одной программы 16-разрядные и 24-разрядные одновременно? Или есть константный размер указателя, который определяется при запуске из операционной системы, 16 разрядов, или 24 разряда?
А где что-то вроде этого потерялось?
Или это из новой версии?
Я думаю мы всегда просто неправильно понимали using namespace, я вот нашёл интересный вариант использования в gdextension для C++. Вот моя интерпретация этого подхода:
Вместо
Или даже некого
Мне кажется это громоздко, хотя если твой подход программирования предусматривает использование using, то это будет выглядеть как-то так, что мне тоже кажется уместным:
А корень вышел 2,969848...
В майнкрафте теперь трёхмерный шум Перлина* до какой-то версии использовался двухмерный.
В крайнем случае можно использовать if/else if
Короче твой смайлик отвалился...
Это вполне легко сделать, но для меня это показалось избыточным, когда нужно было просто достать значение элемента.
Благодарю.
Спасибо, учту. Думаю я даже могу найти применение этому теперь.
То есть адрес указателя
int* ptr;будет храниться в стеке, в то время, как в хипе будут храниться сами данные?про packed-структуры слышал, но по мне так это какая-то шляпа, тем более наличие свободных байтов во время тестов структур позволяет их более плотно упорядочить простой перестановкой строк типов, хотя наверное я просто не сталкивался с необходимостью в их упаковке...
Благодарю
И кстати, разве ссылка не на статью по C++? Или в C правила те же?
Учту при редактировании. Спасибо за ссылку
А, понятно. Спасибо.
интеловский получается LITTLE_ENDIAN(..., 2^3, 2^2, 2^1, 2^0), а мотороллерный - BIG_ENDIAN(2^0, 2^1, 2^2, 2^3, ...), если я правильно понял, что ты имел в виду.
Кстати, не в курсе про
htonl(),htons(),ntohl()иntohs(). Я просто видел упоминания вместе с byte order, но так и не понял зачем нужно и как использовать.Судя по тому, что я видел, когда прощупывал Vulkan, это делают достаточно часто, иначе бы для этого не выделили бы параметр почти во всех функциях.
Кстати, что за "костыльный" Byte order и причём тут union? (Вроде это же больше со struct связано)
Да не, лучше могло и не появиться. Спасибо за книгу!
Спасибо за уточнение. Но можно уточнить у вас, как у знающего?
В пределах одной программы 16-разрядные и 24-разрядные одновременно? Или есть константный размер указателя, который определяется при запуске из операционной системы, 16 разрядов, или 24 разряда?