当我们在头文件中有原型时,我们的静态分析工具会抱怨"返回类型上的无用类型限定符",例如:
const int foo();
Run Code Online (Sandbox Code Playgroud)
我们这样定义它是因为函数返回一个永远不会改变的常量,认为API似乎更清晰const.
我觉得这类似于为了清楚明确地将全局变量初始化为零,即使C标准已经声明如果未明确初始化所有全局变量将被初始化为零.在一天结束时,它真的没关系.(但静态分析工具并没有抱怨.)
我的问题是,有什么理由可以导致问题吗?我们是否应该忽略该工具产生的错误,或者我们是否应该以不太清晰和一致的API的可能成本来安抚该工具?(它返回const char*该工具没有问题的其他常量.)
我希望有一个枚举,如:
enum FilterType
{
Rigid = "Rigid",
SoftGlow = "Soft / Glow",
Ghost = "Ghost",
}
Run Code Online (Sandbox Code Playgroud)
怎么做到这一点?有一个更好的方法吗?它将被用于一个对象的实例,它将被序列化/反序列化.它也会填充下拉列表.
我有一个带有签名的C API:
int GetBuffer(char* buffer, int* maxSize)
Run Code Online (Sandbox Code Playgroud)
在C中,我将这样称呼它:
char buffer[4096];
int maxSize = 4096;
GetBuffer(buffer, &maxSize);
Run Code Online (Sandbox Code Playgroud)
maxSize设置为缓冲区大小,并设置为填充的实际大小.
我需要从C#调用它.我如何在"安全模式"下执行此操作?
一般来说,您对此有何建议?目前,我需要将近10分钟的时间来附加到托管SharePoint 2007的本地运行的IIS进程.
我有一个函数来检查某个东西是否存在,如果不存在,则创建它.什么是好话呢?现在我正在使用"维护",因此调用该函数maintain_buffer_on_path,但我认为"维护"是误导性的.你能想到一个更好的单字名称吗?
我在SQL Server中的存储过程中使用临时表.我试图在OLE DB源代码编辑器中使用该SP.
我可以看到在Build Query按钮附带的Query Builder中返回的数据输出.但是,当我单击列选项卡时,我收到以下错误.
- TITLE:Microsoft Visual Studio
数据流任务错误[OLE DB源[1]]:SSIS错误代码DTS_E_OLEDBERROR.发生OLE DB错误.错误代码:0x80004005.OLE DB记录可用.来源:"Microsoft SQL Server Native Client 10.0"Hresult:0x80004005描述:"无效的对象名称'## Payment'.".
数据流任务出错[OLE DB源[1]]:无法从数据源检索列信息.确保数据库中的目标表可用.
这是否意味着我不能在SP中使用临时表,如果我希望它被SSIS使用
const size_t size = 5;
int *i = new int[size]();
for (int* k = i; k != i + size; ++k)
{
cout << *k << endl;
}
Run Code Online (Sandbox Code Playgroud)
即使我有值使用()运算符初始化动态数组元素,我得到的输出是
135368
0
0
0
0
Run Code Online (Sandbox Code Playgroud)
不知道为什么第一个数组元素被初始化为135368.
有什么想法吗 ?
叶在综合模式实现了Component接口,包括Add,Remove,和GetChild方法,一个叶是永远不会使用.这似乎违反了接口隔离原则.
那么复合模式SOLID的用法是什么?
链接到Composite Pattern:http://www.dofactory.com/Patterns/PatternComposite.aspx
design-patterns liskov-substitution-principle composite solid-principles interface-segregation-principle
我想将C风格的字符串转换为字节向量.一个可行的解决方案是手动转换每个字符并将其推送到矢量上.但是,我对这个解决方案并不满意,并希望找到一种更优雅的方式.
我的一次尝试如下:
std::vector<byte> myVector;
&myVector[0] = (byte)"MyString";
Run Code Online (Sandbox Code Playgroud)
哪些错误并让我得到一个
错误C2106:'=':左操作数必须是l值
这样做的正确方法是什么?
我正在考虑构建一种类似于Scratch 的可视化编程语言,供儿童(又名可怜的打字员)在对微控制器或机器人进行编程时使用。
例如,有一个为 Arduino 构建图形编程环境的项目。
我真的很喜欢 Scratch,并且希望图形编码是类似的。 Scratchs 源代码可在其自己的免费许可下使用。它是用Squeak(基于Smalltalk)编写的,我不懂这种语言。
我突然想到可能还有其他项目可以构建。当我浏览维基百科的图形语言列表时,我没有看到太多开源且可以构建的语言。
我熟悉 C/C++、Python 和一点 Objective C。如果我要从头开始构建自己的项目,我想我会使用 Qt 库,因为我想构建跨平台的东西,但是不幸的是,我也不知道。
如果我有无限量的时间来研究它,你可以打赌我会学习 Squeak 和 Qt,并对所有现有的可视化编程项目进行详尽的搜索。事实并非如此,我想征求意见:
c++ ×3
c ×2
c# ×2
.net ×1
coding-style ×1
composite ×1
const ×1
enums ×1
interface-segregation-principle ×1
interop ×1
liskov-substitution-principle ×1
mit-scratch ×1
naming ×1
pdb ×1
pinvoke ×1
qt ×1
squeak ×1
ssis ×1
vector ×1