При компиляции в C++ я часто в конечном итоге с сообщениями об ошибках, связанные с «формальными параметрами», такими какЧто такое формальный параметр?
error C2719: 'b': formal parameter with __declspec(align('16')) won't be aligned
Я понимаю ошибку, а также тот факт, что b
является параметром функции Я определяющей.
Однако, что это означает, что параметр официально? Может ли быть неформальным параметров?
Я замечаю, что термин «формальный параметр» появляется и на других языках, поэтому я предполагаю, что это более общий термин, не обязательно специфический для C-семейства языков? Являются ли неофициальные параметры поддерживаемыми некоторыми подмножествами языков?
Увидев ответы, один последний вопрос: где эти имена формальный параметр и фактический параметр происхождения из? Происходит ли это из стандарта C, или это эффект называть его как таковой в каком-то абстрактном исчислении языка?
В данном конкретном случае это означает, что вы пытаетесь передать более трех параметров SSE функции, и вы застряли с Visual Studio и WIN32 ABI. ;-) –
@Paul R: В этом конкретном случае я передавал выровненный параметр по значению, а не 'const &'. – CygnusX1
Относительно того, откуда берутся имена: «формальный» в математике не является противоположностью «неформальной». 'формальный' происходит от' form', то есть 'формальный' означает четко определенную. Например, формальная логика не является противоположностью неформальной логике, а логикой, основанной на четко определенных правилах. Формальные параметры, следовательно, относятся к параметрам, которые определяют форму функции. Фактически, этот показатель очевиден. – Shahbaz