Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   GNU C++ - char und uint8_t nicht das gleiche ? (https://www.delphipraxis.net/215747-gnu-c-char-und-uint8_t-nicht-das-gleiche.html)

paule32.jk 30. Aug 2024 19:56

GNU C++ - char und uint8_t nicht das gleiche ?
 
Hallo,
ich habe den folgenden GCC C++ Code:
Code:
uint8_t ch = _wtoi(c);
qvc::QChar * qc = new qvc::QChar((uint8_t)'7');

if (qc->isDigit())
std::cout << "okay" << std::endl;
dies bringt mir korrekten Code/Image.
Code:
uint8_t ch = _wtoi(c);
qvc::QChar * qc = new qvc::QChar((uint8_t)ch);

if (qc->isDigit())
std::cout << "okay" << std::endl; // wird nicht erreicht
dies bring mir keinen korrekten Code/Image.
woran kann das liegen ?

Sherlock 31. Aug 2024 12:23

AW: GNU C++ - char und uint8_t nicht das gleiche ?
 
Einer davon kann Vorzeichen haben, der andere nicht.
https://os.mbed.com/users/fpucher/co...iki/Datentypen

paule32.jk 31. Aug 2024 12:49

AW: GNU C++ - char und uint8_t nicht das gleiche ?
 
@Sherlock:

Danke für Deinen Link.
Ich habe es inzwischen lösen können (mit memcpy) - vielleicht etwas umständlich, aber für mich okay.

Code:
if (value == symbolTypeEnum::stQChar_AnsiChar) {
    wchar_t * c = new wchar_t[16];
    wcscpy(c, reinterpret_cast<wchar_t*>(addr));
    uint8_t ch = (uint8_t)_wtoi(c);
    char * buffer = new char[4];
    sprintf(buffer, "%d", ch);
    memcpy(&ch, buffer, sizeof(uint8_t));
    delete buffer;
    delete c;
    qvc::QChar* qc = new qvc::QChar((uint8_t)ch);
    uint64_t   qu = reinterpret_cast<uint64_t>((void*)qc);
    current_ptr   = qu;
    return current_ptr ;
}

Sherlock 31. Aug 2024 19:09

AW: GNU C++ - char und uint8_t nicht das gleiche ?
 
Das ist der Grund warum C/C++ Programme "Fehler" haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz