|
|
请看这个例子:
- FILE *open_err_file( char *name )
- {
- char *buffer;
- /* allocate temporary buffer for file name */
- buffer = (char *)alloca( strlen( name ) + 5 );
- if( buffer ) {
- FILE *fp;
- sprintf( buffer, "%s.err", name );
- fp = fopen( buffer, "w" );
- return fp;
- }
- return (FILE *)NULL;
- }
- int main( void )
- {
- FILE *fp;
- if((fp = open_err_file( "err_name" ))<0) {
- printf( "Unable to open error file\n" );
- return(1);
- } else {
- fprintf( fp, "Hello from the alloca test.\n" );
- fclose( fp );
- }
- return EXIT_SUCCESS;
- }
复制代码
这里的alloca()前怎么要用(char *)n呢?是因为buffer的类型是char *吗?那这个函数的原型定义中的void *中的void的意思就是可以是任何数据类型啦??:help :help
可以很莱,但我想清楚的知道,先谢过。。 |
|