C-返回字符串的函数(自动变量 静态变量 static)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* getstr(int value)
{
	//static char port_str[10] = {0};
	char port_str[10] = {0};
	switch(value)
	{
		case 1:
      		strcpy(port_str,"uart1");
			break;
		case 2:
      		strcpy(port_str,"usbmodem");
			break;
				
	}
	return port_str;
}

int main(int argc, char *argv[]) {
	
	char *p = NULL;
	p = getstr(1);
	printf("%s,0x%x\n",p,p);
	return 0;
}
mali@mali:~/share/7600M21$ gcc main.c -o main
main.c: In function ‘getstr’:
main.c:18:2: warning: function returns address of local variable [enabled by default]
main.c: In function ‘main’:
main.c:25:2: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘char *’ [-Wformat]
mali@mali:~/share/7600M21$ ./main
+@,0xab9d42e0

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* getstr(int value)
{
	static char port_str[10] = {0};
	//char port_str[10] = {0};
	switch(value)
	{
		case 1:
      		strcpy(port_str,"uart1");
			break;
		case 2:
      		strcpy(port_str,"usbmodem");
			break;
				
	}
	return port_str;
}

int main(int argc, char *argv[]) {
	
	char *p = NULL;
	p = getstr(1);
	printf("%s,0x%x\n",p,p);
	return 0;
}
mali@mali:~/share/7600M21$ gcc main.c -o main
main.c: In function ‘main’:
main.c:25:2: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘char *’ [-Wformat]
mali@mali:~/share/7600M21$ ./main
uart1,0x601030

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值