Skip to content

char type is not compatible with all boards #287

Description

@tomcombriat

Trying to get the AudioDelayFeedbackX2 example to work correctly on the Pico (RP2040) I encountered a weird behavior: char type on the Pico (and maybe some other boards) is unsigned by default. Here is a small example that exemplifies that and all the potential side effects this could have:

char a = -1;
voidsetup() {
Serial.begin(115200);
}
voidloop() {
Serial.println(sizeof(a));
Serial.println(a - 1);
delay(1000);
}

Output:

1
254

Note that it does work with the expected behavior on the UNO or by defining signed char a=-1.


For mozzi, the expected type in most cases is int8_t, which is the same for everyone, hence I think it will be beneficial to have a critical look at every places where char is used and change it when necessary (probably everywhere as there are no example that I can think of which actually uses characters).
This goes along the line that I remember @tfry-git saying about defining more closely the types we are working with.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions