Portál AbcLinuxu, 9. listopadu 2025 01:59
static const char * const texts_1724[] = {
"8000", /* 0: 6 */
...................
"192000", /* 14: 14 */
"IEC958 Input", /* 15: -- */
};
Protože některé karty podporují jen některé z těchto frekvencí, potřebuji kód zobecnit, aby se nepracovalo rovnou s tímto statickým polem, ale s polem příslušným dané kartě.
Tedy jsem definici tohoto pole přesunul z funkce na hlavní úroveň, do struktury karty přidal novou položku a v inicializaci struktury se snažím jí toto pole přiřadit.
struct snd_ice1712 {
............
struct ice1712_rates_info {
....
char * * texts; /* list of rate strings */
} rates_info;
}
Přiřazení v inicializaci provádím
ice->rates_info.texts = texts_1724;Bohužel toto hodí při kompilaci
warning: assignment from incompatible pointer type. Zkoušel sem všechny možné varianty definice položky texts, různě odstraňovat consty u definice statického pole, ale nedokázal jsem warning (někdy rovnou error) odstranit. Má znalost C pro gcc je poměrně chatrná. Velice děkuji za radu či doporučení.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.