Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Made WCharacter.h more clear #26

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
pratikpc wants to merge 1 commit into arduino:master
base: master
Choose a base branch
Loading
from pratikpc:master
Open

Made WCharacter.h more clear #26

pratikpc wants to merge 1 commit into arduino:master from pratikpc:master

Conversation

@pratikpc
Copy link

@pratikpc pratikpc commented Feb 6, 2019

It's obvious that a == 0 ? false : true is same as a != 0

Also a != 0 looks more clear as a Return Type to a bool function.
It's more easier to understand what it does in this form.
WCharacter.h was full of functions which utilised a == 0 ? false : true instead of the more easy to read a != 0 which strikes a fine balance between simplicity and readability.

If we are to look at Standard Library Definitions of the various functions used like isdigit, isalpha etc. we find they return 0 when they do not find anything thus making isdigit(ch) != 0 even more clearer

Added extern C
Given the fact that we are using C Functions and code that is compatible with the C Standard, I added extern C. Extern C is also used in similar C Standard Compatible Arduino header files

guilhermgonzaga reacted with thumbs up emoji
a == 0 ? false : true is same as a != 0
Also added extern C
Copy link

CLAassistant commented Apr 9, 2021
edited
Loading

CLA assistant check
All committers have signed the CLA.


#include <ctype.h>

// This Mentions that the following code is
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is useless. It only changes how the function names are mangled. Since the functions are not compiled into an object file nor a static library, it doesn't matter if they're extern "C" or not. They're inline, in C++ and in C.

Copy link
Collaborator

@matthijskooijman matthijskooijman Apr 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is true for any inline function, since they are not necessarily inlined. In this case, they are always_inline so it should indeed not matter, but it might be good to still have the extern "C" for good measure (and in case other non-always_inline functions are added later). I would omit the comment here, though, since the meaning/intention of extern "C" is rather obvious (and can be looked up if not) and I believe it's used without comment elsewhere too.

Copy link
Collaborator

@matthijskooijman matthijskooijman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a reasonable change to me. As @leg0 suggests, extern "C" is not strictly required, but it doesn't hurt. I can imagine removing the comment about it, though. See also inline comment.


#include <ctype.h>

// This Mentions that the following code is
Copy link
Collaborator

@matthijskooijman matthijskooijman Apr 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is true for any inline function, since they are not necessarily inlined. In this case, they are always_inline so it should indeed not matter, but it might be good to still have the extern "C" for good measure (and in case other non-always_inline functions are added later). I would omit the comment here, though, since the meaning/intention of extern "C" is rather obvious (and can be looked up if not) and I believe it's used without comment elsewhere too.

Copy link
Contributor

Hi @leg0 👋 Can you please sign the CLA?

Copy link
Contributor

leg0 commented May 25, 2021

@aentinger I have already signed it.

Copy link
Collaborator

per1234 commented May 25, 2021

pratikpc reacted with thumbs up emoji

Copy link
Contributor

@aentinger I have already signed it.

Mea culpa 😊

Copy link
Contributor

@pratikpc can you please sign it while being logged in via the right email ... likely the email stored in the commit is different from the one you are signed in GitHub.

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

Reviewers

@matthijskooijman matthijskooijman matthijskooijman approved these changes

+1 more reviewer

@leg0 leg0 leg0 left review comments

Reviewers whose approvals may not affect merge requirements

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /