The only reason not to do this is that the address of the strchr function will not be consistent across the entire process. Do you think this could be a problem, even just a conformance problem?
I'm not sure I understand the concern. There can be up to three overloads of strchr in a program (one extern "C" and two extern "C++" if the program includes C++ bits). Each of the overloads must has its own distinct address (and name) but that address of the same overload needs to be the same across the whole program (though the C bits will never see the C address and the C++ bits have no way of accessing the C address in conforming programs). As long as this invariant is maintained I don't think there is a problem. Martin