Hello, I had a very general question, not a specific programming question. I've programmed in C++ before, and in assembly for the Motorola 68k in academic settings, if that helps answer.
How much control does one have (within C++ language and the C++ compiler being used) over memory alignment and management at the really low-level?
I've read that compilers often make their own optimizations or re-arrange what they perceive to be inefficient source code. I'm interested in particular in cases when a given project hasn't been written entirely in assembly. If a part of a program has been written in C++ and another critical part has been written in assembly code, and they must be integrated, how is that done? Are there cases where the capabilities of the C++ language cannot deal with the low level nature of what is needed and assembly code MUST be written? What are common tools/software that an embedded C++ programmer might use when a project requires higher level C++ concepts/objects as well as low-level memory concerns?