Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
253 views
in Technique[技术] by (71.8m points)

c++ - How the compiler manages the same char?

I would like to know if the compiler (I'm using VS 2015) optimizes also if the same character is found when it checks the code?

Example:

wstrFile.find_last_of(L"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
wstrFile.find_last_of(L"aefgh");

"aefgh" (used two times) are stored once only somewhere when the program is started?

Otherwise, is it useful to store them in a variable to gain (a little bit) space? (in all cases, I will use this variable further)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

An implementation is permitted to make L"abcdef" and L"abcdef" have the same address, but it is impossible for one to make L"cd" point to the middle characters of that literal, because the literal must end with a NULL character, and no NULL character exists at that location in the original string.

Use cases where memory is extremely tight do exist, but I'd say on balance the likelihood of you needing to care about this is slim to none.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...