gcc 4.4.1 c89
我有以下代码:
static enum states
{
ACTIVE,
RUNNING,
STOPPED,
IDLE
};
Run Code Online (Sandbox Code Playgroud)
我收到警告:
useless class storage specifier in empty declaration
Run Code Online (Sandbox Code Playgroud)
但是,如果我删除静态关键字,我不会收到该警告.
我正在使用以下标志进行编译:
-Wall -Wextra
Run Code Online (Sandbox Code Playgroud)
非常感谢任何建议,
g ++(Ubuntu/Linaro 4.4.4-14ubuntu5)4.4.5
我有以下名为sdpAPI.a的静态库.我在尝试将其与我的测试应用程序链接时遇到问题.只是想知道我是否做错了什么.静态库是用g ++构建的;
我的目录如下:
/projects/unit_test/main.c
/projects/unit_test/sdp/inc/sdpAPH.h
/projects/unit_test/sdp/lib/sdpAPI.a
Run Code Online (Sandbox Code Playgroud)
我的源代码是这样的:
#include <stdio.h>
#include "sdpAPI.h"
int main(void)
{
printf("----- TEST SDP ------\n");
try {
sdpSessionDescription sdp;
sdp.clear();
}
catch(...) {
printf("----- TEST FAILED --------\n");
return 0;
}
printf("------ TEST SUCCESSFULL ------\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的Makefile是这样的:
OBJECT_FILES = main.o
CC = g++
CFLAGS = -Wall -Wextra -Wunreachable-code -ggdb -O0
TARGET = sdp_demo
INC_PATH = -I sdp/inc
LIB_PATH = -L sdp/lib/sdpAPI.a
$(TARGET): $(OBJECT_FILES)
$(CC) $(CFLAGS) $(INC_PATH) $(LIB_PATH) $(OBJECT_FILES) -o $(TARGET)
main.o: main.c
$(CC) …Run Code Online (Sandbox Code Playgroud) 我正在审查log4net的一些代码,我遇到了这个.
private static readonly ILog logger = LogManager.GetLogger(typeof(AdminClient));
Run Code Online (Sandbox Code Playgroud)
我想知道为什么你需要私有静态只读.
从我的理解私有意味着变量不能在类外使用,除非有一个访问器方法或获取属性.
static意味着变量仅在此文件中作用域.
readonly意味着您只能从值中读取并且无法分配它.
所以,我在想那个编写这段代码的人.声明它是私有的,因为他们不希望它在类外使用和静态,因此不希望它在文件外部使用.但是,如果有一个get属性会静态阻止这种形式发生.
我想我只能理解readonly,而且只能读取和设置值.
非常感谢任何建议,
gcc 4.4.4 C89
我只是想知道大多数C程序员在想要将内存归零时做了什么.
例如,我有一个1024字节的缓冲区.有时我会这样做:
char buffer[1024] = {0};
Run Code Online (Sandbox Code Playgroud)
这将使所有字节为零.
但是,我应该这样声明并使用memset吗?
char buffer[1024];
.
.
memset(buffer, 0, sizeof(buffer));
Run Code Online (Sandbox Code Playgroud)
有没有真正的理由你必须将记忆归零?不做的最坏情况是什么?
gcc 4.4.4
我究竟做错了什么?
char x[10];
char y[] = "Hello";
while(y != NULL)
*x++ = *y++;
Run Code Online (Sandbox Code Playgroud)
非常感谢任何建议.
gcc (GCC) 4.6.3
c89
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用usleep.但是,我一直收到以下警告:
隐式声明函数usleep
我已经包含了unistd.h头文件.
手册页提到了这个问题.但我不确定我理解它:
usleep():
Since glibc 2.12:
_BSD_SOURCE ||
(_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
Before glibc 2.12:
_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
Run Code Online (Sandbox Code Playgroud)
但不确定我对上述内容做了什么?
GNU Make 3.82
gcc 4.7.2
c89
Run Code Online (Sandbox Code Playgroud)
我有以下make文件:
INC_PATH=-I/home/dev_tools/apr/include/apr-1
LIB_PATH=-L/home/dev_tools/apr/lib
LIBS=-lapr-1 -laprutil-1
RUNTIME_PATH=-Wl,-rpath,/home/dev_tools/apr/lib
CC=gcc
CFLAGS=-Wall -Wextra -g -m32 -O2 -D_DEBUG -D_THREAD_SAFE -D_REENTRANT -D_LARGEFILE64_SOURCE $(INC_PATH)
SOURCES=$(wildcard src/*.c)
OBJECTS=$(patsubst %.c, %.o, $(SOURCES))
EXECUTABLE=bin/to
all: build $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(CFLAGS) -o $@ $(RUNTIME_PATH) $(OBJECTS) $(LIB_PATH) $(LIBS)
$(OBJECTS): $(SOURCES)
$(CC) $(CFLAGS) -c $(SOURCES) $(LIB_PATH) $(LIBS)
build:
@mkdir -p bin
clean:
rm -rf $(EXECUTABLE) $(OBJECTS) bin
find . -name "*~" -exec rm {} \;
find . -name "*.o" -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
我的目录结构是这样的project/src project/bin …
C#2008 SP1
我正在使用代码来检测是否已在"Internet选项"下设置代理.如果有代理,那么我将在我的webclient中设置它.
所以我只是检查代理的地址是否存在.如果没有,那么在webclient中没有设置代理.
这是正确的方法:
非常感谢任何建议,
WebProxy proxy = WebProxy.GetDefaultProxy();
if (proxy.Address.ToString() != string.Empty)
{
Console.WriteLine("Proxy URL: " + proxy.Address.ToString());
wc.Proxy = proxy;
}
Run Code Online (Sandbox Code Playgroud)
======代码编辑======
[DllImport("wininet.dll", CharSet = CharSet.Auto)]
private extern static bool InternetGetConnectedState(ref InternetConnectionState_e lpdwFlags, int dwReserved);
[Flags]
enum InternetConnectionState_e : int
{
INTERNET_CONNECTION_MODEM = 0x1,
INTERNET_CONNECTION_LAN = 0x2,
INTERNET_CONNECTION_PROXY = 0x4,
INTERNET_RAS_INSTALLED = 0x10,
INTERNET_CONNECTION_OFFLINE = 0x20,
INTERNET_CONNECTION_CONFIGURED = 0x40
}
// Return true or false if connecting through a proxy server
public bool connectingThroughProxy()
{
InternetConnectionState_e flags …Run Code Online (Sandbox Code Playgroud) 我的平台是Uccntu 10.4上的gcc 4.4.3,C89.
我正在寻找一些安装和使用Apache便携式运行时的教程或电子书.
到目前为止,我只找到了下面的链接.我正在寻找更多信息.一本书籍教科书,解释了从安装apr到链接和编译应用程序的所有内容.
http://apr.apache.org/docs/apr/1.4/index.html
http://dev.ariel-networks.com/apr/apr-tutorial/html/apr-tutorial.html#toc1
非常感谢任何建议,
C#2008 SP1
我使用此代码连接到我们的客户端网站.这适用于软电话应用程序.在用户拨打电话之前,软电话必须测试是否存在活动的Internet连接.
所以,希望我所做的是使用httpWebRequest类连接到我们的客户网站.如果响应正常,则可以继续进行Internet连接.
但是,我注意到响应的响应时间太长.我不确定这不是一种非常有效的测试方法.
但是,当我浏览他们的网站时,加载页面只需不到一秒钟.但是当我使用HttpWebRequest类时需要太长时间
所以对此的要求是:
有时会在客户办公室使用代理.我不能使用TCPClient类(没有代理属性).
代理不支持SOCKS,因此无法使用Sockets类.
我需要使用超时属性.所以不能使用WebClient类.这是因为软电话会冻结,直到返回响应.几秒钟后超时.
所以我唯一能想到的就是HttpWebRequest类.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.xxxxxxxxx.com");
request.Timeout = 5000;
request.Credentials = CredentialCache.DefaultNetworkCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Console.WriteLine("IsSIPServerAvailable: " + response.StatusCode);
isAvailable = true;
}
Run Code Online (Sandbox Code Playgroud)
========使用p\Invoke编辑====
[DllImport("wininet.dll", CharSet = CharSet.Auto)]
private extern static bool InternetGetConnectedState(ref InternetConnectionState_e lpdwFlags, int dwReserved);
[Flags]
enum InternetConnectionState_e : int
{
INTERNET_CONNECTION_MODEM = 0x1,
INTERNET_CONNECTION_LAN = 0x2,
INTERNET_CONNECTION_PROXY = 0x4,
INTERNET_RAS_INSTALLED = 0x10,
INTERNET_CONNECTION_OFFLINE = 0x20,
INTERNET_CONNECTION_CONFIGURED = 0x40
}
// In function …Run Code Online (Sandbox Code Playgroud)