Skip to content

Commit da0b943

Browse files
Add print(signed char | short | float) explicitly
Add explicit print() support for signed char, unsigned/signed short, and float. Also, add `signed` keyword explicitly to int and long (even if unnecessary). Notice that `char` and `signed char` are considered different types, even if their ranges are the same (ditto for `unsigned char` in SAM). Both AVR and SAM seem to define [u]int8_t explicitly as [un]signed char and not as char, so printing them will print them as numbers as expected. (This does not apply to `int` and `signed int`; those are the same type.)
1 parent d9a8682 commit da0b943

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

cores/arduino/Print.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ size_t Print::print(const String &s)
5959
return write(s.c_str(), s.length());
6060
}
6161

62-
size_t Print::print(long n, int base)
62+
size_t Print::print(signed long n, int base)
6363
{
6464
if (base == 0) {
6565
return write(n);

cores/arduino/Print.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,21 @@ class Print
6464

6565
size_t print(const __FlashStringHelper *);
6666
size_t print(const String &);
67-
size_t print(long, int = DEC);
67+
size_t print( signed long, int = DEC);
6868
size_t print(unsigned long, int = DEC);
6969
size_t print(double, int = 2);
7070

7171
size_t print(const char str[]) { return write(str); }
7272
size_t print(const char c) { return write(c); }
7373
size_t print(const Printable &x) { return x.printTo(*this); }
7474

75+
size_t print( signed char n, int f = DEC) { return print(( signed long) n, f); }
76+
size_t print( signed short n, int f = DEC) { return print(( signed long) n, f); }
77+
size_t print( signed int n, int f = DEC) { return print(( signed long) n, f); }
7578
size_t print(unsigned char n, int f = DEC) { return print((unsigned long) n, f); }
76-
size_t print( int n, int f = DEC) { return print(( long) n, f); }
79+
size_t print(unsigned short n, int f = DEC) { return print((unsigned long) n, f); }
7780
size_t print(unsigned int n, int f = DEC) { return print((unsigned long) n, f); }
81+
size_t print( float n, int f = 2 ) { return print(( double ) n, f); }
7882

7983
size_t println(void);
8084

0 commit comments

Comments
 (0)