warning C4130: '==' : logical operation on address of string constant

本文介绍在VS2010环境下,使用C++进行字符串比较时遇到的警告问题及解决方案。通过替换直接的字符串比较操作符'=='为使用_tcscmp函数,成功解决了逻辑操作在字符串常量地址上的警告,确保了代码的正确性和稳定性。
arning: Module 'androidx.test.uiautomator_uiautomator' depends on non-existing optional_uses_libs 'com.android.extensions.xr' Warning: Module 'androidx.wear_wear' depends on non-existing optional_uses_libs 'wear-sdk' Warning: Module 'androidx.wear.compose_compose-foundation' depends on non-existi ng optional_uses_libs 'wear-sdk' [ 0% 172/131877] //external/icu/icu4c/source:libicuuc_stubdata clang++ stubdata FAILED: out/soong/.intermediates/external/icu/icu4c/source/libicuuc_stubdata/lin ux_glibc_x86_64_static/obj/external/icu/icu4c/source/stubdata/stubdata.o PWD=/proc/self/cwd /usr/bin/ccache prebuilts/clang/host/linux-x86/clang-r547379/ bin/clang++ -c -Wa,--noexecstack -fPIC -fno-omit-frame-pointer -U_FORTIFY_SOURC E -D_FORTIFY_SOURCE=3 -fstack-protector --gcc-toolchain=prebuilts/gcc/linux-x86/ host/x86_64-linux-glibc2.17-4.8 -fstack-protector-strong -m64 --sysroot prebuilt s/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot -O2 -Wall -Wextra -Winit -self -Wpointer-arith -Wunguarded-availability -Werror=date-time -Werror=int-con version -Werror=pragma-pack -Werror=pragma-pack-suspicious-include -Werror=sizeo f-array-div -Werror=string-plus-int -Werror=unreachable-code-loop-increment -Wno -error=deprecated-declarations -Wno-c23-extensions -Wno-c99-designator -Wno-gnu- folding-constant -Wno-inconsistent-missing-override -Wno-error=reorder-init-list -Wno-reorder-init-list -Wno-sign-compare -Wno-unused -DANDROID -DNDEBUG -UDEBUG -D__compiler_offsetof=__builtin_offsetof -D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WE AK__ -faddrsig -fdebug-default-version=5 -fcolor-diagnostics -ffp-contract=off - fno-exceptions -fno-strict-aliasing -fmessage-length=0 -gsimple-template-names - gz=zstd -no-canonical-prefixes -fdebug-prefix-map=/proc/self/cwd= -ftrivial-auto -var-init=zero -Wno-unused-command-line-argument -g -Wno-enum-compare -Wno-enum -compare-switch -Wno-null-pointer-arithmetic -Wno-null-dereference -Wno-pointer- compare -Wno-final-dtor-non-final-class -Wno-psabi -Wno-null-pointer-subtraction -Wno-string-concatenation -Wno-deprecated-non-prototype -Wno-unused -Wno-deprec ated -Wno-error=format -target x86_64-linux-gnu -fPIC -Wimplicit-fallthrough -D _LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -Wno-gnu-include-next -Iexternal/icu/ icu4c/source -Iexternal/icu/icu4c/source/common -Iexternal/icu/android_icu4c/inc lude -Iprebuilts/clang/host/linux-x86/clang-r547379/include/x86_64-unknown-linux -gnu/c++/v1 -Iprebuilts/clang/host/linux-x86/clang-r547379/include/c++/v1 -Wall -Werror -std=gnu++20 -fno-rtti -nostdinc++ -Isystem/core/include -Isystem/loggin g/liblog/include -Isystem/media/audio/include -Ihardware/libhardware/include -Ih ardware/libhardware_legacy/include -Ihardware/ril/include -Iframeworks/native/in clude -Iframeworks/native/opengl/include -Iframeworks/av/include -Werror=bool-o peration -Werror=dangling -Werror=format-insufficient-args -Werror=implicit-int- float-conversion -Werror=int-in-bool-context -Werror=int-to-pointer-cast -Werror =pointer-to-int-cast -Werror=xor-used-as-pow -Wimplicit-int-float-conversion -Wn o-void-pointer-to-enum-cast -Wno-void-pointer-to-int-cast -Wno-pointer-to-int-ca st -Werror=fortify-source -Wno-unused-variable -Wno-missing-field-initializers - Wno-packed-non-pod -Werror=address-of-temporary -Werror=incompatible-function-po inter-types -Werror=null-dereference -Werror=return-type -Wno-tautological-const ant-compare -Wno-tautological-type-limit-compare -Wno-implicit-int-float-convers ion -Wno-tautological-overlap-compare -Wno-deprecated-copy -Wno-range-loop-const ruct -Wno-zero-as-null-pointer-constant -Wno-deprecated-anon-enum-enum-conversio n -Wno-deprecated-enum-enum-conversion -Wno-error=pessimizing-move -Wno-non-c-ty pedef-for-linkage -Wno-align-mismatch -Wno-error=unused-but-set-variable -Wno-er ror=unused-but-set-parameter -Wno-error=deprecated-builtins -Wno-error=deprecate d -Wno-error=invalid-offsetof -Wno-vla-cxx-extension -Wno-cast-function-type-mis match -fcommon -Wno-format-insufficient-args -Wno-misleading-indentation -Wno-b itwise-instead-of-logical -Wno-unused -Wno-unused-parameter -Wno-unused-but-set- parameter -Wno-unqualified-std-cast-call -Wno-array-parameter -Wno-gnu-offsetof- extensions -Wno-pessimizing-move -MD -MF out/soong/.intermediates/external/icu/i cu4c/source/libicuuc_stubdata/linux_glibc_x86_64_static/obj/external/icu/icu4c/s ource/stubdata/stubdata.o.d -o out/soong/.intermediates/external/icu/icu4c/sourc e/libicuuc_stubdata/linux_glibc_x86_64_static/obj/external/icu/icu4c/source/stub data/stubdata.o external/icu/icu4c/source/stubdata/stubdata.cpp ccache: error: Failed to create directory /home/hya/.ccache/tmp: Read-only file system \nWrite to a read-only file system detected. Possible fixes include 1. Generate file directly to out/ which is ReadWrite, #recommend solution 2. BUILD_BROKEN_SRC_DIR_RW_ALLOWLIST := <my/path/1> <my/path/2> #discouraged, su bset of source tree will be RW 3. BUILD_BROKEN_SRC_DIR_IS_WRITABLE := true #highly discouraged, entire source t ree will be RW [ 0% 173/131877] //external/icu/libandroidicuinit:libandroidicuinit clang++ Icu FAILED: out/soong/.intermediates/external/icu/libandroidicuinit/libandroidicuini t/linux_glibc_x86_64_static/obj/external/icu/libandroidicuinit/IcuRegistration.o PWD=/proc/self/cwd /usr/bin/ccache prebuilts/clang/host/linux-x86/clang-r547379/ bin/clang++ -c -Wa,--noexecstack -fPIC -fno-omit-frame-pointer -U_FORTIFY_SOURC E -D_FORTIFY_SOURCE=3 -fstack-protector --gcc-toolchain=prebuilts/gcc/linux-x86/ host/x86_64-linux-glibc2.17-4.8 -fstack-protector-strong -m64 --sysroot prebuilt s/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot -O2 -Wall -Wextra -Winit -self -Wpointer-arith -Wunguarded-availability -Werror=date-time -Werror=int-con version -Werror=pragma-pack -Werror=pragma-pack-suspicious-include -Werror=sizeo f-array-div -Werror=string-plus-int -Werror=unreachable-code-loop-increment -Wno -error=deprecated-declarations -Wno-c23-extensions -Wno-c99-designator -Wno-gnu- folding-constant -Wno-inconsistent-missing-override -Wno-error=reorder-init-list -Wno-reorder-init-list -Wno-sign-compare -Wno-unused -DANDROID -DNDEBUG -UDEBUG -D__compiler_offsetof=__builtin_offsetof -D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WE AK__ -faddrsig -fdebug-default-version=5 -fcolor-diagnostics -ffp-contract=off - fno-exceptions -fno-strict-aliasing -fmessage-length=0 -gsimple-template-names - gz=zstd -no-canonical-prefixes -fdebug-prefix-map=/proc/self/cwd= -ftrivial-auto -var-init=zero -Wno-unused-command-line-argument -g -Wno-enum-compare -Wno-enum -compare-switch -Wno-null-pointer-arithmetic -Wno-null-dereference -Wno-pointer- compare -Wno-final-dtor-non-final-class -Wno-psabi -Wno-null-pointer-subtraction -Wno-string-concatenation -Wno-deprecated-non-prototype -Wno-unused -Wno-deprec ated -Wno-error=format -target x86_64-linux-gnu -fPIC -Wimplicit-fallthrough -D _LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -Wno-gnu-include-next -Iexternal/icu/ libandroidicuinit/include -Iexternal/icu/libandroidicuinit -Iexternal/icu/icu4c/ source/common -Iexternal/icu/android_icu4c/include -Iprebuilts/clang/host/linux- x86/clang-r547379/include/x86_64-unknown-linux-gnu/c++/v1 -Iprebuilts/clang/host /linux-x86/clang-r547379/include/c++/v1 -Wall -Werror -std=gnu++20 -fno-rtti -no stdinc++ -Isystem/core/include -Isystem/logging/liblog/include -Isystem/media/au dio/include -Ihardware/libhardware/include -Ihardware/libhardware_legacy/include -Ihardware/ril/include -Iframeworks/native/include -Iframeworks/native/opengl/i nclude -Iframeworks/av/include -Werror=bool-operation -Werror=dangling -Werror= format-insufficient-args -Werror=implicit-int-float-conversion -Werror=int-in-bo ol-context -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -Werror=xor-u sed-as-pow -Wimplicit-int-float-conversion -Wno-void-pointer-to-enum-cast -Wno-v oid-pointer-to-int-cast -Wno-pointer-to-int-cast -Werror=fortify-source -Wno-unu sed-variable -Wno-missing-field-initializers -Wno-packed-non-pod -Werror=address -of-temporary -Werror=incompatible-function-pointer-types -Werror=null-dereferen ce -Werror=return-type -Wno-tautological-constant-compare -Wno-tautological-type -limit-compare -Wno-implicit-int-float-conversion -Wno-tautological-overlap-comp are -Wno-deprecated-copy -Wno-range-loop-construct -Wno-zero-as-null-pointer-con stant -Wno-deprecated-anon-enum-enum-conversion -Wno-deprecated-enum-enum-conver sion -Wno-error=pessimizing-move -Wno-non-c-typedef-for-linkage -Wno-align-misma tch -Wno-error=unused-but-set-variable -Wno-error=unused-but-set-parameter -Wno- error=deprecated-builtins -Wno-error=deprecated -Wno-error=invalid-offsetof -Wno -vla-cxx-extension -Wno-cast-function-type-mismatch -fcommon -Wno-format-insuff icient-args -Wno-misleading-indentation -Wno-bitwise-instead-of-logical -Wno-unu sed -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-unqualified-std-cas t-call -Wno-array-parameter -Wno-gnu-offsetof-extensions -Wno-pessimizing-move - MD -MF out/soong/.intermediates/external/icu/libandroidicuinit/libandroidicuinit /linux_glibc_x86_64_static/obj/external/icu/libandroidicuinit/IcuRegistration.o. d -o out/soong/.intermediates/external/icu/libandroidicuinit/libandroidicuinit/l inux_glibc_x86_64_static/obj/external/icu/libandroidicuinit/IcuRegistration.o ex ternal/icu/libandroidicuinit/IcuRegistration.cpp ccache: error: Failed to create directory /home/hya/.ccache/tmp: Read-only file system \nWrite to a read-only file system detected. Possible fixes include 1. Generate file directly to out/ which is ReadWrite, #recommend solution 2. BUILD_BROKEN_SRC_DIR_RW_ALLOWLIST := <my/path/1> <my/path/2> #discouraged, su bset of source tree will be RW 3. BUILD_BROKEN_SRC_DIR_IS_WRITABLE := true #highly discouraged, entire source t ree will be RW [ 0% 174/131877] //external/icu/libandroidicuinit:libandroidicuinit clang++ and FAILED: out/soong/.intermediates/external/icu/libandroidicuinit/libandroidicuini t/linux_glibc_x86_64_static/obj/external/icu/libandroidicuinit/android_icu_init. o PWD=/proc/self/cwd /usr/bin/ccache prebuilts/clang/host/linux-x86/clang-r547379/ bin/clang++ -c -Wa,--noexecstack -fPIC -fno-omit-frame-pointer -U_FORTIFY_SOURC E -D_FORTIFY_SOURCE=3 -fstack-protector --gcc-toolchain=prebuilts/gcc/linux-x86/ host/x86_64-linux-glibc2.17-4.8 -fstack-protector-strong -m64 --sysroot prebuilt s/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8/sysroot -O2 -Wall -Wextra -Winit -self -Wpointer-arith -Wunguarded-availability -Werror=date-time -Werror=int-con version -Werror=pragma-pack -Werror=pragma-pack-suspicious-include -Werror=sizeo f-array-div -Werror=string-plus-int -Werror=unreachable-code-loop-increment -Wno -error=deprecated-declarations -Wno-c23-extensions -Wno-c99-designator -Wno-gnu- folding-constant -Wno-inconsistent-missing-override -Wno-error=reorder-init-list -Wno-reorder-init-list -Wno-sign-compare -Wno-unused -DANDROID -DNDEBUG -UDEBUG -D__compiler_offsetof=__builtin_offsetof -D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WE AK__ -faddrsig -fdebug-default-version=5 -fcolor-diagnostics -ffp-contract=off - fno-exceptions -fno-strict-aliasing -fmessage-length=0 -gsimple-template-names - gz=zstd -no-canonical-prefixes -fdebug-prefix-map=/proc/self/cwd= -ftrivial-auto -var-init=zero -Wno-unused-command-line-argument -g -Wno-enum-compare -Wno-enum -compare-switch -Wno-null-pointer-arithmetic -Wno-null-dereference -Wno-pointer- compare -Wno-final-dtor-non-final-class -Wno-psabi -Wno-null-pointer-subtraction -Wno-string-concatenation -Wno-deprecated-non-prototype -Wno-unused -Wno-deprec ated -Wno-error=format -target x86_64-linux-gnu -fPIC -Wimplicit-fallthrough -D _LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -Wno-gnu-include-next -Iexternal/icu/ libandroidicuinit/include -Iexternal/icu/libandroidicuinit -Iexternal/icu/icu4c/ source/common -Iexternal/icu/android_icu4c/include -Iprebuilts/clang/host/linux- x86/clang-r547379/include/x86_64-unknown-linux-gnu/c++/v1 -Iprebuilts/clang/host /linux-x86/clang-r547379/include/c++/v1 -Wall -Werror -std=gnu++20 -fno-rtti -no stdinc++ -Isystem/core/include -Isystem/logging/liblog/include -Isystem/media/au dio/include -Ihardware/libhardware/include -Ihardware/libhardware_legacy/include -Ihardware/ril/include -Iframeworks/native/include -Iframeworks/native/opengl/i nclude -Iframeworks/av/include -Werror=bool-operation -Werror=dangling -Werror= format-insufficient-args -Werror=implicit-int-float-conversion -Werror=int-in-bo ol-context -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -Werror=xor-u sed-as-pow -Wimplicit-int-float-conversion -Wno-void-pointer-to-enum-cast -Wno-v oid-pointer-to-int-cast -Wno-pointer-to-int-cast -Werror=fortify-source -Wno-unu sed-variable -Wno-missing-field-initializers -Wno-packed-non-pod -Werror=address -of-temporary -Werror=incompatible-function-pointer-types -Werror=null-dereferen ce -Werror=return-type -Wno-tautological-constant-compare -Wno-tautological-type -limit-compare -Wno-implicit-int-float-conversion -Wno-tautological-overlap-comp are -Wno-deprecated-copy -Wno-range-loop-construct -Wno-zero-as-null-pointer-con stant -Wno-deprecated-anon-enum-enum-conversion -Wno-deprecated-enum-enum-conver sion -Wno-error=pessimizing-move -Wno-non-c-typedef-for-linkage -Wno-align-misma tch -Wno-error=unused-but-set-variable -Wno-error=unused-but-set-parameter -Wno- error=deprecated-builtins -Wno-error=deprecated -Wno-error=invalid-offsetof -Wno -vla-cxx-extension -Wno-cast-function-type-mismatch -fcommon -Wno-format-insuff icient-args -Wno-misleading-indentation -Wno-bitwise-instead-of-logical -Wno-unu sed -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-unqualified-std-cas t-call -Wno-array-parameter -Wno-gnu-offsetof-extensions -Wno-pessimizing-move - MD -MF out/soong/.intermediates/external/icu/libandroidicuinit/libandroidicuinit /linux_glibc_x86_64_static/obj/external/icu/libandroidicuinit/android_icu_init.o .d -o out/soong/.intermediates/external/icu/libandroidicuinit/libandroidicuinit/ linux_glibc_x86_64_static/obj/external/icu/libandroidicuinit/android_icu_init.o external/icu/libandroidicuinit/android_icu_init.cpp ccache: error: Failed to create directory /home/hya/.ccache/tmp: Read-only file system \nWrite to a read-only file system detected. Possible fixes include 1. Generate file directly to out/ which is ReadWrite, #recommend solution 2. BUILD_BROKEN_SRC_DIR_RW_ALLOWLIST := <my/path/1> <my/path/2> #discouraged, su bset of source tree will be RW 3. BUILD_BROKEN_SRC_DIR_IS_WRITABLE := true #highly discouraged, entire source t ree will be RW 02:46:49 ninja failed with: exit status 1 #### failed to build some targets (10:52 (mm:ss)) ####
09-18
### 算术运算符(+ - * / %) 算术运算符用于对数值进行基本的数学运算,包括加法(+)、减法(-)、乘法(*)、除法(/)和取模(%)。 ```c #include <stdio.h> int main() { int a = 10, b = 3; int sum = a + b; int difference = a - b; int product = a * b; int quotient = a / b; int remainder = a % b; printf("Sum: %d\n", sum); printf("Difference: %d\n", difference); printf("Product: %d\n", product); printf("Quotient: %d\n", quotient); printf("Remainder: %d\n", remainder); return 0; } ``` 在这个例子中,`+` 用于计算两个数的和,`-` 用于计算差,`*` 用于计算积,`/` 用于计算商,`%` 用于计算余数。需要注意的是,除法运算符 `/` 如果操作数是整数,结果会截断小数部分。 ### 逻辑运算符(&& || !) 逻辑运算符用于布尔值的逻辑运算,包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。 ```c #include <stdio.h> int main() { int a = 1, b = 0; int and_result = a && b; int or_result = a || b; int not_result = !a; printf("Logical AND: %d\n", and_result); printf("Logical OR: %d\n", or_result); printf("Logical NOT: %d\n", not_result); return 0; } ``` 逻辑与 `&&` 只有当两个操作数都为真时结果才为真;逻辑或 `||` 只要有一个操作数为真结果就为真;逻辑非 `!` 用于取反操作数的布尔值。 ### 关系运算符(== != > < >= <=) 关系运算符用于比较两个值的大小或相等关系,包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。 ```c #include <stdio.h> int main() { int a = 10, b = 5; int equal = a == b; int not_equal = a != b; int greater = a > b; int less = a < b; int greater_equal = a >= b; int less_equal = a <= b; printf("Equal: %d\n", equal); printf("Not Equal: %d\n", not_equal); printf("Greater: %d\n", greater); printf("Less: %d\n", less); printf("Greater Equal: %d\n", greater_equal); printf("Less Equal: %d\n", less_equal); return 0; } ``` 关系运算符的结果是布尔值,真为 1,假为 0。 ### 位运算符(& | ^ << >>) 位运算符用于对二进制位进行操作,包括按位与(&)、按位或(|)、按位异或(^)、左移(<<)和右移(>>)。 ```c #include <stdio.h> int main() { int a = 5, b = 3; int bitwise_and = a & b; int bitwise_or = a | b; int bitwise_xor = a ^ b; int left_shift = a << 1; int right_shift = a >> 1; printf("Bitwise AND: %d\n", bitwise_and); printf("Bitwise OR: %d\n", bitwise_or); printf("Bitwise XOR: %d\n", bitwise_xor); printf("Left Shift: %d\n", left_shift); printf("Right Shift: %d\n", right_shift); return 0; } ``` 按位与 `&` 对两个操作数的对应位进行与操作;按位或 `|` 进行或操作;按位异或 `^` 进行异或操作;左移 `<<` 将操作数的二进制位向左移动指定的位数;右移 `>>` 则向右移动。 ### 赋值运算符(+= -= *= /=) 赋值运算符用于将一个值赋给变量,同时可以结合算术运算进行复合赋值,包括加等于(+=)、减等于(-=)、乘等于(*=)和除等于(/=)。 ```c #include <stdio.h> int main() { int a = 10; a += 5; printf("a after +=: %d\n", a); a -= 3; printf("a after -=: %d\n", a); a *= 2; printf("a after *=: %d\n", a); a /= 4; printf("a after /=: %d\n", a); return 0; } ``` `a += 5` 等价于 `a = a + 5`,其他复合赋值运算符同理。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值