gpt4 book ai didi

c - 从指针数组返回字符串的函数

转载 作者:行者123 更新时间:2023-11-30 14:47:29 25 4
gpt4 key购买 nike

我需要声明一个从指针数组返回字符串的函数..我正在对PIC进行编程,并且我正在使用LCD作为接口(interface)..有了这段代码,我就得到了我想要的:

// CONFIGURATION BITS
#pragma config FOSC = HS // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF // Low-Voltage In-Circuit Serial Programming Enable bit
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit
#pragma config WRT = OFF // Flash Program Memory Write Enable bits
#pragma config CP = OFF // Flash Program Memory Code Protection bit

#define _XTAL_FREQ 8000000

// DEFINING LCD PINS
#define RS RD2
#define EN RD3
#define D4 RD4
#define D5 RD5
#define D6 RD6
#define D7 RD7

#include <xc.h>

#include "lcd.h"

#include <stdio.h>
#include <stdlib.h>

void main()
{

TRISD = 0x00; //PORTD as output for LCD
Lcd_Init();
Lcd_Clear();

while(1)
{

Lcd_Set_Cursor(1,1);

char *keypress;
int key = 2;
char *key2[] = {"3", "4", "5"};
keypress = key2[key];

Lcd_Write_String(keypress);

__delay_ms(50);

}
}

enter image description here

我得到“5”..这就是我想要的..但​​是当我尝试为此创建一个函数时..

// CONFIGURATION BITS
#pragma config FOSC = HS // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF // Low-Voltage In-Circuit Serial Programming Enable bit
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit
#pragma config WRT = OFF // Flash Program Memory Write Enable bits
#pragma config CP = OFF // Flash Program Memory Code Protection bit

#define _XTAL_FREQ 8000000

// DEFINING LCD PINS
#define RS RD2
#define EN RD3
#define D4 RD4
#define D5 RD5
#define D6 RD6
#define D7 RD7

#include <xc.h>

#include "lcd.h"

#include <stdio.h>
#include <stdlib.h>

char kbd_getc();

char kbd_getc(){

int key = 2;
char *key2[] = {"3", "4", "5"};
return key2[key];

}

void main()
{

TRISD = 0x00; //PORTD as output for LCD
Lcd_Init();
Lcd_Clear();

while(1)
{

Lcd_Set_Cursor(1,1);

char *keypress;

keypress = kbd_getc();

Lcd_Write_String(keypress);

__delay_ms(50);

}
}

enter image description here

我不明白为什么我会得到 mm ..我不确定我是否错误地声明了函数或者我对指针做了错误的操作,谢谢

最佳答案

你的函数返回char,但你返回一个char *

将返回类型更改为char *

并提高编译器警告以捕获这些内容。

关于c - 从指针数组返回字符串的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51183866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com