几个简单的笔试题
1. inline函数中有堆栈的创建与销毁过程吗? 2.可以在头文件中定义inline函数吗?(涉及编码规范)或者说最好定义在哪 3.char *pBuffer = "abcd"; char *strCpy = (char*)malloc(sizeof(pBuffer) + 1); 函数最后return strCpy; strCpy是存储在堆栈中吗? 这时abcd是存储在堆中吗?如果不是,它们存储在哪
追问:我查了下 貌似是建议放在头文件中的
1. inline函数中有堆栈的创建与销毁过程吗? 2.可以在头文件中定义inline函数吗?(涉及编码规范)或者说最好定义在哪 3.char *pBuffer = "abcd"; char *strCpy = (char*)malloc(sizeof(pBuffer) + 1); 函数最后return strCpy; strCpy是存储在堆栈中吗? 这时abcd是存储在堆中吗?如果不是,它们存储在哪
追问:我查了下 貌似是建议放在头文件中的
答案:好难啊。
1)inline属于内嵌代码,属于代码区(c语言4个区),不会涉及堆栈吧。
2)既然是代码,应该在c文件中定义。
3)malloc属于动态分配内存,在堆,(注意,堆和栈是不同的)
4)"abcd"属于常量,不可能存在堆,只好靠边站了。