質問: gccのstrlen()の実装はどこにありますか? 誰かがgccでのstrlen()の定義を私に指摘できますか?私はリリース4.4.2を約30分間(グーグルがおかしくなりながら)グレップしていて、strlen()が実際に実装されている場所を見つけることができないようです。
回答: 私はこの質問が4歳であることを理解していますが、_#include <string.h>_を使用せず、その回答(承認された回答を含む)のアカウントがない場合、gccにはstrlenのownコピーが含まれることがよくあります。忘れると、警告が表示されます。_file_name:line_number: warning: incompatible implicit declaration of built-in function 'strlen'_また、gccは、-werrorまたは-fno-builtinを渡さない限り、x86ではrepnz scasb asmバリアントであるコピーをインライン化します。これに関連するファイルは_gcc/config/<platform>/<platform>.{c,md}_にありますまた、gcc/builtins.cによって制御されます。 strlen()が定数に最適化されているかどうか、またどのように最適化されているかについては、このファイルでtree c_strlen(tree src, int only_value)として定義されている関数を参照してください。また、(とりわけ)strlenが(前述の構成/プラットフォームに基づいて)拡張および折りたたみされる方法も制御します。