Page 1 of 1

Parametros y retorno en funciones en C

Posted: Mon Feb 22, 2021 6:43 pm
by jvtecheto
Hola :

Sigo con mi tema de las funciones en C a ver si sois tan amables de aclararme estas dudas.

hay muchas funciones hechas en C de la forma

Code: Select all

HB_FUNC( SQLITE3_OPEN )
{
   psqlite3 db;
   BOOL fFree;
   char * pszdbName = ( char * ) hb_fsNameConv( ( BYTE * ) hb_parc( 1 ), &fFree );

   if( hb_fsFile( ( BYTE * ) pszdbName ) || hb_parl( 2 ) )
   {
      if( sqlite3_open( pszdbName, &db ) == SQLITE_OK )
         hb_retsqlite3( db );
      else
      {
         sqlite3_close( db );
      
         hb_retptr( NULL );
      }
   }
   else
   {
      HB_TRACE(HB_TR_DEBUG, ("sqlite3_open(): Database doesn't exist %s", pszdbName));

      hb_retptr( NULL );
   }

   if( fFree )
      hb_xfree( pszdbName );
}
 
Esta funcion se llama de la forma:

Code: Select all

sqlite3_open( "new.s3db", .F. )
 


dudas.
¿De donde se deduce los parametros que lleva la funcion, son todas las variables que se declaran en ella?

¿Como saber que devuelve la funcion?  Es esto

Code: Select all

hb_retptr( NULL );
 

Muchisimas gracias, es un tema que me interesa mucho, si hay algun documento online que lo explique o alguien tiene algo
que me pueda mandar se lo agradezco.

Jose.