PRB: Inline Assembly C++ Function May Need Return StatementLast reviewed: November 2, 1995Article ID: Q107432 |
The information in this article applies to:
SYMPTOMSC++ functions containing inline assembly routines that store the return value in the AX register may need a return statement added to the function. If the function does not have a return statement, the following error is generated:
C2561: 'function name' function must return a value RESOLUTIONTo resolve this error, create a temporary variable and move the AX register to this variable for the return statement. This will work around the C++ type-checking syntax. If you are using C++ version 8.0 that ships with Visual C++ for Windows NT, then the EAX register must be used instead.
Sample Code
/* Compile options needed: none */ int func(void){ //int a; //Remove this comment to eliminate the error. __asm { mov ax, 02h ;mov a, ax //Remove this comment to eliminate the error. } //return a; //Remove this comment to eliminate the error. } void main(void){ int a; a = func();}
|
Additional reference words: 7.00 8.00 8.00c 9.00 1.00 1.50 2.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |