有什么方法可以设置默认参数吗?xc8

有什么方法可以设置默认参数吗?xc8,c,xc8,C,Xc8,我有一个简单的lcd xc8头文件: #ifndef XC_PANTALLACWS_H #define XC_PANTALLACWS_H #include "lcd.h" void pantallaCWS (const char stringProyecto){ const char stringProyecto[16] = "__proyNombre____"; Lcd_Init(); Lcd_Out(1, 0, stringProyecto); } #endif

我有一个简单的lcd xc8头文件:

#ifndef XC_PANTALLACWS_H
#define XC_PANTALLACWS_H

#include "lcd.h"

void pantallaCWS (const char stringProyecto){
    const char stringProyecto[16] = "__proyNombre____";
    Lcd_Init();
    Lcd_Out(1, 0, stringProyecto);
}

#endif
我想做的是,如果函数中没有给出参数,则默认设置一个参数


这可能吗?

首先,我认为您的参数声明中有一个错误,因为它只有一个字符,但您需要一个字符串

然后,诀窍是检查空参数,如果是,则在函数中提供默认参数,例如:

void pantallaCWS (const char *stringProyecto){
    const char *myString;
    if (stringProyecto==0)
        myString= "__proyNombre____";
    else
        myString= stringProyecto;
    Lcd_Init();
    Lcd_Out(1, 0, myString);
}

永远不要将可执行代码放在头文件中,问题的答案是:不,不要在C中“永远不要将可执行代码放在头文件中”-这并不完全正确@Mike-例如,想想
静态
/
内联
函数。我认为这与要求不符:“如果函数中没有给出参数”这是我的工作。我将以两种方式调用该函数:1:pantallaCWS(null)或2:pantallaCWS(anyString)。。。。。thanksss@JonathonReinhart,另一种解决方案是使用varargs,但我认为OP不能胜任这一工作。(此外,他的声明不允许这样做。)